-
-
Notifications
You must be signed in to change notification settings - Fork 10.8k
fix(router): suppress abort errors in single fetch #14761
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
Normalize fetch aborts and ignore abort results during data strategy. Add integration coverage for navigation during fetcher polling.
🦋 Changeset detectedLatest commit: 0fc8dba The changes in this PR will be included in the next version bump. This PR includes changesets to release 11 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Hi @yoni-noma, Welcome, and thank you for contributing to React Router! Before we consider your pull request, we ask that you sign our Contributor License Agreement (CLA). We require this only once. You may review the CLA and sign it by adding your name to contributors.yml. Once the CLA is signed, the If you have already signed the CLA and received this response in error, or if you have any questions, please contact us at [email protected]. Thanks! - The Remix team |
Add changeset for abort handling fix and sign CLA.
|
Thank you for signing the Contributor License Agreement. Let's get this merged! 🥳 |
Prefer signal reason and AbortError types; only fall back to message matching for fetch TypeError cases.
Note TypeError message matching is a browser fallback only.
|
Added a short note in code: we prefer abort signal/AbortError checks and only fall back to TypeError message matching to handle browser abort race cases. The fallback is intentionally narrow (TypeError-only) to minimize false positives. Should improve behavior for Chrome/Safari/Firefox where aborted fetches sometimes surface as TypeError. |
Extract internal isAbortError helper to avoid duplication.
Description
Fixes a navigation crash caused by aborted single-fetch data requests (fetchers and navigations). Some browsers throw a
TypeErrorbefore the abort signal is marked, so we normalize aborts and only use a TypeError-message fallback for that race.Changes
fetchAndDecodeViaTurboStreamand treat abort results as empty dataImpact
Prevents abort-related errors (TypeError: Failed to Fetch, Load Failed, etc.) from reaching the error boundary during navigation while keeping non-abort failures intact.
Related: #14203
Test plan