-
Notifications
You must be signed in to change notification settings - Fork 27.8k
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
[dev-overlay] fix: proceed to get runtime error when fails to fetch original stack frames #75743
[dev-overlay] fix: proceed to get runtime error when fails to fetch original stack frames #75743
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Tests Passed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can't just swallow this error. This is a legit bug.
Co-authored-by: Sebastian Sebbie Silbermann <sebastian.silbermann@vercel.com>
9f869ba
to
c24f643
Compare
const res = await fetch('/__nextjs_original-stack-frames', { | ||
method: 'POST', | ||
body: JSON.stringify(req), | ||
}) | ||
|
||
if (!res.ok || res.status === 204) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js 02-06-_dev-overlay_fix_trycatch_fetching_original_stack_frames | Change | |
---|---|---|---|
buildDuration | 16.5s | 14.8s | N/A |
buildDurationCached | 13.9s | 11.7s | N/A |
nodeModulesSize | 392 MB | 392 MB | |
nextStartRea..uration (ms) | 407ms | 411ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | vercel/next.js 02-06-_dev-overlay_fix_trycatch_fetching_original_stack_frames | Change | |
---|---|---|---|
5306-HASH.js gzip | 54.2 kB | 54.2 kB | N/A |
8276.HASH.js gzip | 169 B | 168 B | N/A |
8377-HASH.js gzip | 5.46 kB | 5.46 kB | N/A |
bccd1874-HASH.js gzip | 52.9 kB | 52.9 kB | N/A |
framework-HASH.js gzip | 57.5 kB | 57.5 kB | N/A |
main-app-HASH.js gzip | 240 B | 242 B | N/A |
main-HASH.js gzip | 34.5 kB | 34.5 kB | N/A |
webpack-HASH.js gzip | 1.71 kB | 1.71 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js 02-06-_dev-overlay_fix_trycatch_fetching_original_stack_frames | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 39.4 kB | 39.4 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js 02-06-_dev-overlay_fix_trycatch_fetching_original_stack_frames | Change | |
---|---|---|---|
_app-HASH.js gzip | 193 B | 193 B | ✓ |
_error-HASH.js gzip | 193 B | 193 B | ✓ |
amp-HASH.js gzip | 512 B | 510 B | N/A |
css-HASH.js gzip | 343 B | 342 B | N/A |
dynamic-HASH.js gzip | 1.84 kB | 1.84 kB | ✓ |
edge-ssr-HASH.js gzip | 265 B | 265 B | ✓ |
head-HASH.js gzip | 363 B | 362 B | N/A |
hooks-HASH.js gzip | 393 B | 392 B | N/A |
image-HASH.js gzip | 4.59 kB | 4.58 kB | N/A |
index-HASH.js gzip | 268 B | 268 B | ✓ |
link-HASH.js gzip | 2.35 kB | 2.35 kB | N/A |
routerDirect..HASH.js gzip | 328 B | 328 B | ✓ |
script-HASH.js gzip | 397 B | 397 B | ✓ |
withRouter-HASH.js gzip | 323 B | 326 B | N/A |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 3.59 kB | 3.59 kB | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js 02-06-_dev-overlay_fix_trycatch_fetching_original_stack_frames | Change | |
---|---|---|---|
_buildManifest.js gzip | 748 B | 747 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js 02-06-_dev-overlay_fix_trycatch_fetching_original_stack_frames | Change | |
---|---|---|---|
index.html gzip | 524 B | 523 B | N/A |
link.html gzip | 539 B | 538 B | N/A |
withRouter.html gzip | 520 B | 520 B | ✓ |
Overall change | 520 B | 520 B | ✓ |
Edge SSR bundle Size
vercel/next.js canary | vercel/next.js 02-06-_dev-overlay_fix_trycatch_fetching_original_stack_frames | Change | |
---|---|---|---|
edge-ssr.js gzip | 130 kB | 130 kB | N/A |
page.js gzip | 211 kB | 211 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Middleware size
vercel/next.js canary | vercel/next.js 02-06-_dev-overlay_fix_trycatch_fetching_original_stack_frames | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 675 B | 673 B | N/A |
middleware-r..fest.js gzip | 155 B | 156 B | N/A |
middleware.js gzip | 31.3 kB | 31.3 kB | N/A |
edge-runtime..pack.js gzip | 844 B | 844 B | ✓ |
Overall change | 844 B | 844 B | ✓ |
Next Runtimes
vercel/next.js canary | vercel/next.js 02-06-_dev-overlay_fix_trycatch_fetching_original_stack_frames | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 393 kB | 393 kB | N/A |
app-page-exp..prod.js gzip | 132 kB | 132 kB | ✓ |
app-page-tur..prod.js gzip | 145 kB | 145 kB | ✓ |
app-page-tur..prod.js gzip | 141 kB | 141 kB | ✓ |
app-page.run...dev.js gzip | 381 kB | 381 kB | N/A |
app-page.run..prod.js gzip | 128 kB | 128 kB | ✓ |
app-route-ex...dev.js gzip | 39.3 kB | 39.3 kB | ✓ |
app-route-ex..prod.js gzip | 25.6 kB | 25.6 kB | ✓ |
app-route-tu..prod.js gzip | 25.6 kB | 25.6 kB | ✓ |
app-route-tu..prod.js gzip | 25.4 kB | 25.4 kB | ✓ |
app-route.ru...dev.js gzip | 40.9 kB | 40.9 kB | ✓ |
app-route.ru..prod.js gzip | 25.4 kB | 25.4 kB | ✓ |
dist_client_...dev.js gzip | 356 B | 356 B | ✓ |
dist_client_...dev.js gzip | 349 B | 349 B | ✓ |
pages-api-tu..prod.js gzip | 9.69 kB | 9.69 kB | ✓ |
pages-api.ru...dev.js gzip | 11.8 kB | 11.8 kB | ✓ |
pages-api.ru..prod.js gzip | 9.68 kB | 9.68 kB | ✓ |
pages-turbo...prod.js gzip | 21.9 kB | 21.9 kB | ✓ |
pages.runtim...dev.js gzip | 31.5 kB | 31.5 kB | ✓ |
pages.runtim..prod.js gzip | 21.9 kB | 21.9 kB | ✓ |
server.runti..prod.js gzip | 60.5 kB | 60.5 kB | ✓ |
Overall change | 896 kB | 896 kB | ✓ |
build cache Overall increase ⚠️
vercel/next.js canary | vercel/next.js 02-06-_dev-overlay_fix_trycatch_fetching_original_stack_frames | Change | |
---|---|---|---|
0.pack gzip | 2.1 MB | 2.11 MB | |
index.pack gzip | 75.7 kB | 75.9 kB | |
Overall change | 2.18 MB | 2.18 MB |
Diff details
Diff for main-HASH.js
Diff too large to display
Diff for app-page-exp..ntime.dev.js
Diff too large to display
Diff for app-page.runtime.dev.js
Diff too large to display
// caught at `_getOriginalStackFrame()` and return the stack frames so | ||
// that the error overlay can render. | ||
if (!res.ok || res.status === 204) { | ||
const reason = await res.text() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if it's 204, the reason is empty string
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will follow up, thanks!
Why?
When fetch fails to get the original stack frames, the process to get the Runtime Errors fails.
The fetch will likely fail on Storybook stories.
How?
Correctly reject when request fails so that it may be caught at
_getOriginalStackFrame()
and return the stack frame.