@@ -42,7 +42,7 @@ export async function build(
4242 buildHelper . checkRunningInsideNextjsApp ( options ) ;
4343 logger . info ( `App directory: ${ options . appPath } ` ) ;
4444 buildHelper . printNextjsVersion ( options ) ;
45- ensureNextjsVersionSupported ( options ) ;
45+ await ensureNextjsVersionSupported ( options ) ;
4646 const { aws, cloudflare } = getVersion ( ) ;
4747 logger . info ( `@opennextjs/cloudflare version: ${ cloudflare } ` ) ;
4848 logger . info ( `@opennextjs/aws version: ${ aws } ` ) ;
@@ -96,12 +96,27 @@ export async function build(
9696 logger . info ( "OpenNext build complete." ) ;
9797}
9898
99- function ensureNextjsVersionSupported ( options : buildHelper . BuildOptions ) {
100- if ( buildHelper . compareSemver ( options . nextVersion , "<" , "14.2.0" ) ) {
99+ async function ensureNextjsVersionSupported ( { nextVersion } : buildHelper . BuildOptions ) {
100+ if ( buildHelper . compareSemver ( nextVersion , "<" , "14.2.0" ) ) {
101101 logger . error ( "Next.js version unsupported, please upgrade to version 14.2 or greater." ) ;
102102 process . exit ( 1 ) ;
103103 }
104- if ( buildHelper . compareSemver ( options . nextVersion , ">=" , "16" ) ) {
104+ if ( buildHelper . compareSemver ( nextVersion , ">=" , "16" ) ) {
105105 logger . warn ( "Next.js 16 is not fully supported yet! Some features may not work as expected." ) ;
106106 }
107+
108+ const {
109+ default : { version : wranglerVersion } ,
110+ } = await import ( "wrangler/package.json" , { with : { type : "json" } } ) ;
111+
112+ // We need a version of workerd that has a fix for setImmediate for Next.js 16.1+
113+ // See:
114+ // - https://github.com/cloudflare/workerd/pull/5869
115+ // - https://github.com/opennextjs/opennextjs-cloudflare/issues/1049
116+ if (
117+ buildHelper . compareSemver ( nextVersion , ">=" , "16.1.0" ) &&
118+ buildHelper . compareSemver ( wranglerVersion , "<" , "4.59.2" )
119+ ) {
120+ logger . warn ( `Next.js 16.1+ requires wrangler 4.59.2 or greater (${ wranglerVersion } detected).` ) ;
121+ }
107122}
0 commit comments