fix(patches): return empty object for unhandled manifests in loadManifest#1151
Open
nathanschram wants to merge 2 commits intoopennextjs:mainfrom
Open
fix(patches): return empty object for unhandled manifests in loadManifest#1151nathanschram wants to merge 2 commits intoopennextjs:mainfrom
nathanschram wants to merge 2 commits intoopennextjs:mainfrom
Conversation
🦋 Changeset detectedLatest commit: 5c0f1be The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
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 |
Author
|
Hey @vicb - just wanted to check in on this. No rush at all, I know you're probably busy. Just wanted to make sure the approach looks reasonable to you, or if you'd prefer I take it in a different direction. Happy to adjust anything. |
|
Can confirm that is working for me in production after copying this patch into the project using |
|
Need this fix too. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
{}instead of throwing for manifest paths not found during the build-time glob scan inloadManifest()andevalManifest()loadManifest()calls for optional/phase-dependent manifestsProblem
Next.js canary adds
loadManifest()calls for:subresource-integrity-manifest.json- only generated whenexperimental.sriis configured, but loaded unconditionallyreact-loadable-manifest.json- generated by Turbopack, possibly in a different build phaseThe adapter's build-time glob scan doesn't find these files, so the patched function throws at runtime, crashing all dynamic routes with 500.
Fix
Replace the
throw new Error('Unexpected loadManifest...')fallback withreturn {}. This follows the same defensive pattern used by other adapter plugins (instrumentation.ts,find-dir.ts) that return safe defaults for missing files.Test plan
next@canary(16.2.0-canary.53+) using@opennextjs/cloudflareexperimental.sriIS configuredFixes #1141