next.js: Package subpath './server.edge' is not defined by "exports"
Verify canary release
- I verified that the issue exists in the latest Next.js canary release
Provide environment information
Operating System:
Platform: win32
Arch: x64
Version: Windows 10 Enterprise
Binaries:
Node: 16.18.1
npm: N/A
Yarn: N/A
pnpm: N/A
Relevant packages:
next: 13.3.2-canary.12
eslint-config-next: 13.3.1
react: 18.2.0
react-dom: 18.2.0
Which area(s) of Next.js are affected? (leave empty if unsure)
App directory (appDir: true)
Link to the code that reproduces this issue
https://github.com/medonat/nextjs-revalidate-test
To Reproduce
- Clone the repository
- npm install
- npm run build
- npm run start
- Open localhost:3000
- The cat fact shouldn’t change onreload
- Make a POST request: localhost:3000/api/revalidate
- There should be an error 500 and no update if you reload localhost:3000
- Checkout branch 13.3.0 - and repeat the procedure to see that it worked in 13.3.0
Describe the Bug
ISR does not work. Stale data is displayed after calling revalidate.
Error in console:
TypeError: Cannot set properties of undefined (setting 'current') at ue (C:\Users\daniel.hufler\Documents\code\revalidatetest\node_modules\next\dist\compiled\react-dom\cjs\react-dom-server.edge.production.min.js:113:42) at C:\Users\daniel.hufler\Documents\code\revalidatetest\node_modules\next\dist\compiled\react-dom\cjs\react-dom-server.edge.production.min.js:151:127 at new Promise (<anonymous>) at Object.exports.renderToReadableStream (C:\Users\daniel.hufler\Documents\code\revalidatetest\node_modules\next\dist\compiled\react-dom\cjs\react-dom-server.edge.production.min.js:151:53) at C:\Users\daniel.hufler\Documents\code\revalidatetest\node_modules\next\dist\server\node-web-streams-helper.js:195:117 at NextTracerImpl.trace (C:\Users\daniel.hufler\Documents\code\revalidatetest\node_modules\next\dist\server\lib\trace\tracer.js:86:20) at renderToInitialStream (C:\Users\daniel.hufler\Documents\code\revalidatetest\node_modules\next\dist\server\node-web-streams-helper.js:195:37) at C:\Users\daniel.hufler\Documents\code\revalidatetest\node_modules\next\dist\server\app-render\app-render.js:918:92
Expected Behavior
Revalidate should work like it did in previous versions (e.g. 13.3.0)
Which browser are you using? (if relevant)
No response
How are you deploying your application? (if relevant)
next start
About this issue
- Original URL
- State: closed
- Created a year ago
- Reactions: 11
- Comments: 24 (11 by maintainers)
Commits related to this issue
- Fix cross-worker revalidate API (#49101) Currently we invoke the revalidate request directly in the current server when `res.revalidate()` is called. However app needs to be rendered in a separate ... — committed to vercel/next.js by shuding a year ago
- Fix React channel env missing in custom server (#49168) Fixes #48948 ([repro](https://github.com/vercel/next.js/issues/48948#issuecomment-1533542001)). When running inside a custom server with app ... — committed to vercel/next.js by shuding a year ago
- Remove custom handling for prebundled react env (#49954) This removes the previous handling for the prebundled react env we were setting in favor of https://github.com/vercel/vercel/pull/9974 We ... — committed to vercel/next.js by ijjk a year ago
- Remove custom handling for prebundled react env (#49954) This removes the previous handling for the prebundled react env we were setting in favor of https://github.com/vercel/vercel/pull/9974 We ... — committed to hydRAnger/next.js by ijjk a year ago
Have same error (for next@13.4.0) - Package subpath ‘./server.edge’ is not defined by “exports” - for On-demand Revalidation using res.revalidate([url])
Thanks, I’ve identified the cause and am working on a fix right now.
@shuding Please could someone take another look at this, perhaps through the issue https://github.com/vercel/next.js/issues/50464
The
Package subpath './server.edge' is not defined by "exports"
error persists during on-demand revalidation when themiddleware-invoke
flag is set on a path in theapp
directory (without middleware getting invoked per se during revalidation). This might well be a router issue, but it might also arise later during re-render.Also still facing this issue with 13.4.0:
Running into the same issue on
13.4.1
with theoutput: 'standalone'
setting as well.Right - it is not the same as the original issue - it’s the same error message that you posted in your comment above and @LotharVM posted in their comment.
After upgrading to canary
v13.3.5-canary3
, the error changed toJust in case it helps 😃