Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[error overlay] missing html tags error should be blocking #75839

Merged
merged 2 commits into from
Feb 9, 2025

Conversation

huozhi
Copy link
Member

@huozhi huozhi commented Feb 9, 2025

What

missing html tags error should always show the overlay when exist, and the dev indicator count should be 1 since we require users to resolve this first then React can hydrate the right content. After this they can move to others.

Since the indicator count is not covered in old test, I add a new test for new overlay rn, later we can merge them

Observed

  • Currently it requires to click the indicator to show the error
  • The indicator count shows 2

Expected

  • The overlay should pop up as it's a runtime error
  • The indicator count shows 1

Copy link
Member Author

huozhi commented Feb 9, 2025

This stack of pull requests is managed by Graphite. Learn more about stacking.

@ijjk
Copy link
Member

ijjk commented Feb 9, 2025

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js fix/missing-missing-tags-error Change
buildDuration 19.3s 16.5s N/A
buildDurationCached 15.6s 13.1s N/A
nodeModulesSize 393 MB 393 MB N/A
nextStartRea..uration (ms) 431ms 434ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js fix/missing-missing-tags-error Change
5306-HASH.js gzip 54.3 kB 54.3 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 53 kB 53 kB
framework-HASH.js gzip 57.5 kB 57.5 kB N/A
main-app-HASH.js gzip 245 B 245 B
main-HASH.js gzip 34.6 kB 34.5 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 53.2 kB 53.2 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js fix/missing-missing-tags-error 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 fix/missing-missing-tags-error 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 fix/missing-missing-tags-error 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 fix/missing-missing-tags-error Change
index.html gzip 522 B 523 B N/A
link.html gzip 538 B 538 B
withRouter.html gzip 518 B 520 B N/A
Overall change 538 B 538 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js fix/missing-missing-tags-error 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 fix/missing-missing-tags-error Change
middleware-b..fest.js gzip 676 B 670 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 fix/missing-missing-tags-error Change
app-page-exp...dev.js gzip 394 kB 394 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 129 kB 129 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.7 kB 60.7 kB
Overall change 897 kB 897 kB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js fix/missing-missing-tags-error Change
0.pack gzip 2.11 MB 2.11 MB ⚠️ +530 B
index.pack gzip 75.8 kB 75.6 kB N/A
Overall change 2.11 MB 2.11 MB ⚠️ +530 B
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

Commit: 3aa0cd4

@ijjk
Copy link
Member

ijjk commented Feb 9, 2025

Failing test suites

Commit: 3aa0cd4

pnpm test-start-turbo test/e2e/app-dir/dynamic-requests/dynamic-requests.test.ts (turbopack)

  • dynamic-requests > should not error for dynamic requests in pages
  • dynamic-requests > should not error for dynamic requests in routes
Expand output

● dynamic-requests › should not error for dynamic requests in pages

next build failed with code/signal 1

   98 |           if (code || signal)
   99 |             reject(
> 100 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  101 |             )
  102 |           else resolve()
  103 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)

● dynamic-requests › should not error for dynamic requests in routes

next build failed with code/signal 1

   98 |           if (code || signal)
   99 |             reject(
> 100 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  101 |             )
  102 |           else resolve()
  103 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)

Read more about building and testing Next.js in contributing.md.

pnpm test-dev-turbo test/development/acceptance/error-recovery.test.ts (turbopack)

  • ReactRefreshLogBox turbo > logbox: can recover from a syntax error without losing state
Expand output

● ReactRefreshLogBox turbo › logbox: can recover from a syntax error without losing state

TIMED OUT: /Count: 1/



undefined

  735 |
  736 |   if (hardError) {
> 737 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  738 |   }
  739 |   return false
  740 | }

  at check (lib/next-test-utils.ts:737:11)
  at Object.<anonymous> (development/acceptance/error-recovery.test.ts:66:5)

Read more about building and testing Next.js in contributing.md.

@huozhi huozhi marked this pull request as ready for review February 9, 2025 20:07
@huozhi huozhi merged commit 2c592a9 into canary Feb 9, 2025
130 of 133 checks passed
@huozhi huozhi deleted the fix/missing-missing-tags-error branch February 9, 2025 22:50
@@ -64,7 +64,7 @@ describe('app-dir - missing required html tags', () => {
)

await openRedbox(browser)
// TODO(NDX-768): Should show "missing tags" error
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was this removed? No assertion was added that shows this was fixed. Underlying issue was also not marked as done.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops messed with another task in a different pr, this one should be kept.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will be restored in #75796

@@ -30,8 +30,7 @@ function getErrorSignature(ev: SupportedErrorEvent): string {
break
}

// eslint-disable-next-line @typescript-eslint/no-unused-vars
const _ = event satisfies never
event satisfies never
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TypeScript already checks switch exhaustiveness. No need for this pattern and unused return statements: #75854

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants