Skip to content

Standardize Statistics error recovery on soft-retry pattern#1232

Open
techisigu wants to merge 1 commit into
solutions-plug:mainfrom
techisigu:refactor/two-different-retry-error-recovery-strategies-ex
Open

Standardize Statistics error recovery on soft-retry pattern#1232
techisigu wants to merge 1 commit into
solutions-plug:mainfrom
techisigu:refactor/two-different-retry-error-recovery-strategies-ex

Conversation

@techisigu

Copy link
Copy Markdown
Contributor

closes #1172
closes #1173
closes #1174
closes #1175

ErrorBoundary's statistics fallback previously called window.location.reload() on retry, a full page reload, while Statistics' own internal error UI (for fetch failures) retries via execute() with no reload. Give ErrorBoundary a reset() method and let fallback be a render function that receives it, so render-crash retries also resolve via an in-place reset rather than a hard navigation. Full reload remains the default fallback behavior for boundaries that don't opt into a custom fallback (e.g. the app-level boundary in layout.tsx), reserved for genuinely unrecoverable crashes.

Description

Type of Change

  • Bug fix
  • New feature
  • Refactor / code cleanup
  • Documentation update
  • CI / tooling change
  • Breaking change

Testing Done

Bundle Size

Chunk Before After
vendor.js
main*.js
pages/_app*.js

Checklist

  • Tests pass locally
  • Documentation updated (if applicable)
  • No breaking changes, or breaking changes are documented above
  • If you added or changed an API endpoint, regenerated the OpenAPI spec and committed the result:
    cd services/api && cargo run --bin generate-openapi > openapi.yaml
    git add openapi.yaml && git commit -m "chore: regenerate openapi.yaml"
  • If you changed system architecture (new service, database, external dependency, or network boundary), updated docs/architecture.md
  • Bundle size checked (if frontend changes)

Related Issues

Closes #

ErrorBoundary's statistics fallback previously called window.location.reload()
on retry, a full page reload, while Statistics' own internal error UI (for
fetch failures) retries via execute() with no reload. Give ErrorBoundary a
reset() method and let fallback be a render function that receives it, so
render-crash retries also resolve via an in-place reset rather than a hard
navigation. Full reload remains the default fallback behavior for boundaries
that don't opt into a custom fallback (e.g. the app-level boundary in
layout.tsx), reserved for genuinely unrecoverable crashes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@drips-wave

drips-wave Bot commented Jul 26, 2026

Copy link
Copy Markdown

@techisigu Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment