test(nextjs): Added nextjs CF workers test app - #18928

Merged
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime
Jan 26, 2026
Merged

test(nextjs): Added nextjs CF workers test app#18928
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime

Conversation

@logaretm

@logaretmlogaretm commented Jan 21, 2026

Copy link
Copy Markdown
Member

This PR sets up E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext.

Some tests yield different transaction names and span attributes, I will review each of the skipped tests and review the differences and if we should either consolidate the edge runtime behavior with the node runtime behavior.

Known Limitations

Those are the test failures that required skipping.

  • Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕
  • HTTP request headers not extracted as span attributes
  • Metrics not emitting on Cloudflare Workers
  • Middleware transaction_info.source is 'url' instead of 'route'
  • Server component spans have different names (e.g., 'resolve segment modules' instead of specific component names)
  • Missing http.response.status_code / http.status_code attributes

I plan to follow up with another PR to address these, but the higher priority is making sure the SDK doesn't crash and works to some degree on CF worker apps.

Closes#18929 (added automatically)

@linear

linearBot commented Jan 21, 2026

Copy link
Copy Markdown

@logaretmlogaretm changed the title test: Added nextjs CF workers test apptest(nextjs): Added nextjs CF workers test appJan 21, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext. The primary goal is to verify that the Sentry SDK doesn't crash when running in this environment, with several tests intentionally skipped due to known limitations in the CF Workers runtime.

Changes:

  • New test application configuration for Next.js 16 on Cloudflare Workers with OpenNext
  • Comprehensive test suite covering various Next.js features (middleware, server components, route handlers, ISR, metrics)
  • Multiple tests are skipped with TODOs noting CF Workers-specific limitations

Reviewed changes

Copilot reviewed 57 out of 63 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
wrangler.jsoncCloudflare Workers configuration with nodejs_compat and asset bindings
package.jsonDependencies and build scripts for CF Workers deployment
tsconfig.jsonTypeScript configuration for the test application
next.config.tsNext.js configuration with Sentry integration
open-next.config.tsOpenNext configuration for Cloudflare deployment
playwright.config.mjsPlaywright test configuration
sentry.server.config.tsServer-side Sentry configuration
sentry.edge.config.tsEdge runtime Sentry configuration
instrumentation.tsServer instrumentation with onRequestError hook
instrumentation-client.tsClient-side instrumentation
middleware.tsEdge middleware implementation
tests/*.test.tsTest files covering various Next.js features with CF Workers
app/*Test application pages, layouts, and route handlers

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated
Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated

@andreiborzaandreiborza left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should we switch to proxy.ts?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Opennext + CF workers don't work with proxy yet, but it works with Next.js 16 somehow, I think CF workers convert it to a serverless function or something. I will take a look later.

@logaretm
logaretm merged commit 693ca47 into developJan 26, 2026
61 of 64 checks passed
@logaretm
logaretm deleted the awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime branch January 26, 2026 15:15
@tristanbes

tristanbes commented Feb 6, 2026

Copy link
Copy Markdown

Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕

FYI its a known opennext cloudflare adapter limitation; they don't support proxy middleware yet @logaretm .

Issues to track:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test: Added nextjs CF workers test app

6 participants

@logaretm@tristanbes@JPeer264@chargome@andreiborza
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

test(nextjs): Added nextjs CF workers test app - #18928

Merged
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime
Jan 26, 2026
Merged

test(nextjs): Added nextjs CF workers test app#18928
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime

Conversation

@logaretm

@logaretmlogaretm commented Jan 21, 2026

Copy link
Copy Markdown
Member

This PR sets up E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext.

Some tests yield different transaction names and span attributes, I will review each of the skipped tests and review the differences and if we should either consolidate the edge runtime behavior with the node runtime behavior.

Known Limitations

Those are the test failures that required skipping.

  • Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕
  • HTTP request headers not extracted as span attributes
  • Metrics not emitting on Cloudflare Workers
  • Middleware transaction_info.source is 'url' instead of 'route'
  • Server component spans have different names (e.g., 'resolve segment modules' instead of specific component names)
  • Missing http.response.status_code / http.status_code attributes

I plan to follow up with another PR to address these, but the higher priority is making sure the SDK doesn't crash and works to some degree on CF worker apps.

Closes#18929 (added automatically)

@linear

linearBot commented Jan 21, 2026

Copy link
Copy Markdown

@logaretmlogaretm changed the title test: Added nextjs CF workers test apptest(nextjs): Added nextjs CF workers test appJan 21, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext. The primary goal is to verify that the Sentry SDK doesn't crash when running in this environment, with several tests intentionally skipped due to known limitations in the CF Workers runtime.

Changes:

  • New test application configuration for Next.js 16 on Cloudflare Workers with OpenNext
  • Comprehensive test suite covering various Next.js features (middleware, server components, route handlers, ISR, metrics)
  • Multiple tests are skipped with TODOs noting CF Workers-specific limitations

Reviewed changes

Copilot reviewed 57 out of 63 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
wrangler.jsoncCloudflare Workers configuration with nodejs_compat and asset bindings
package.jsonDependencies and build scripts for CF Workers deployment
tsconfig.jsonTypeScript configuration for the test application
next.config.tsNext.js configuration with Sentry integration
open-next.config.tsOpenNext configuration for Cloudflare deployment
playwright.config.mjsPlaywright test configuration
sentry.server.config.tsServer-side Sentry configuration
sentry.edge.config.tsEdge runtime Sentry configuration
instrumentation.tsServer instrumentation with onRequestError hook
instrumentation-client.tsClient-side instrumentation
middleware.tsEdge middleware implementation
tests/*.test.tsTest files covering various Next.js features with CF Workers
app/*Test application pages, layouts, and route handlers

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated
Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated

@andreiborzaandreiborza left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should we switch to proxy.ts?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Opennext + CF workers don't work with proxy yet, but it works with Next.js 16 somehow, I think CF workers convert it to a serverless function or something. I will take a look later.

@logaretm
logaretm merged commit 693ca47 into developJan 26, 2026
61 of 64 checks passed
@logaretm
logaretm deleted the awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime branch January 26, 2026 15:15
@tristanbes

tristanbes commented Feb 6, 2026

Copy link
Copy Markdown

Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕

FYI its a known opennext cloudflare adapter limitation; they don't support proxy middleware yet @logaretm .

Issues to track:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test: Added nextjs CF workers test app

6 participants

@logaretm@tristanbes@JPeer264@chargome@andreiborza
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

test(nextjs): Added nextjs CF workers test app - #18928

Merged
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime
Jan 26, 2026
Merged

test(nextjs): Added nextjs CF workers test app#18928
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime

Conversation

@logaretm

@logaretmlogaretm commented Jan 21, 2026

Copy link
Copy Markdown
Member

This PR sets up E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext.

Some tests yield different transaction names and span attributes, I will review each of the skipped tests and review the differences and if we should either consolidate the edge runtime behavior with the node runtime behavior.

Known Limitations

Those are the test failures that required skipping.

  • Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕
  • HTTP request headers not extracted as span attributes
  • Metrics not emitting on Cloudflare Workers
  • Middleware transaction_info.source is 'url' instead of 'route'
  • Server component spans have different names (e.g., 'resolve segment modules' instead of specific component names)
  • Missing http.response.status_code / http.status_code attributes

I plan to follow up with another PR to address these, but the higher priority is making sure the SDK doesn't crash and works to some degree on CF worker apps.

Closes#18929 (added automatically)

@linear

linearBot commented Jan 21, 2026

Copy link
Copy Markdown

@logaretmlogaretm changed the title test: Added nextjs CF workers test apptest(nextjs): Added nextjs CF workers test appJan 21, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext. The primary goal is to verify that the Sentry SDK doesn't crash when running in this environment, with several tests intentionally skipped due to known limitations in the CF Workers runtime.

Changes:

  • New test application configuration for Next.js 16 on Cloudflare Workers with OpenNext
  • Comprehensive test suite covering various Next.js features (middleware, server components, route handlers, ISR, metrics)
  • Multiple tests are skipped with TODOs noting CF Workers-specific limitations

Reviewed changes

Copilot reviewed 57 out of 63 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
wrangler.jsoncCloudflare Workers configuration with nodejs_compat and asset bindings
package.jsonDependencies and build scripts for CF Workers deployment
tsconfig.jsonTypeScript configuration for the test application
next.config.tsNext.js configuration with Sentry integration
open-next.config.tsOpenNext configuration for Cloudflare deployment
playwright.config.mjsPlaywright test configuration
sentry.server.config.tsServer-side Sentry configuration
sentry.edge.config.tsEdge runtime Sentry configuration
instrumentation.tsServer instrumentation with onRequestError hook
instrumentation-client.tsClient-side instrumentation
middleware.tsEdge middleware implementation
tests/*.test.tsTest files covering various Next.js features with CF Workers
app/*Test application pages, layouts, and route handlers

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated
Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated

@andreiborzaandreiborza left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should we switch to proxy.ts?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Opennext + CF workers don't work with proxy yet, but it works with Next.js 16 somehow, I think CF workers convert it to a serverless function or something. I will take a look later.

@logaretm
logaretm merged commit 693ca47 into developJan 26, 2026
61 of 64 checks passed
@logaretm
logaretm deleted the awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime branch January 26, 2026 15:15
@tristanbes

tristanbes commented Feb 6, 2026

Copy link
Copy Markdown

Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕

FYI its a known opennext cloudflare adapter limitation; they don't support proxy middleware yet @logaretm .

Issues to track:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test: Added nextjs CF workers test app

6 participants

@logaretm@tristanbes@JPeer264@chargome@andreiborza
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

test(nextjs): Added nextjs CF workers test app - #18928

Merged
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime
Jan 26, 2026
Merged

test(nextjs): Added nextjs CF workers test app#18928
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime

Conversation

@logaretm

@logaretmlogaretm commented Jan 21, 2026

Copy link
Copy Markdown
Member

This PR sets up E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext.

Some tests yield different transaction names and span attributes, I will review each of the skipped tests and review the differences and if we should either consolidate the edge runtime behavior with the node runtime behavior.

Known Limitations

Those are the test failures that required skipping.

  • Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕
  • HTTP request headers not extracted as span attributes
  • Metrics not emitting on Cloudflare Workers
  • Middleware transaction_info.source is 'url' instead of 'route'
  • Server component spans have different names (e.g., 'resolve segment modules' instead of specific component names)
  • Missing http.response.status_code / http.status_code attributes

I plan to follow up with another PR to address these, but the higher priority is making sure the SDK doesn't crash and works to some degree on CF worker apps.

Closes#18929 (added automatically)

@linear

linearBot commented Jan 21, 2026

Copy link
Copy Markdown

@logaretmlogaretm changed the title test: Added nextjs CF workers test apptest(nextjs): Added nextjs CF workers test appJan 21, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext. The primary goal is to verify that the Sentry SDK doesn't crash when running in this environment, with several tests intentionally skipped due to known limitations in the CF Workers runtime.

Changes:

  • New test application configuration for Next.js 16 on Cloudflare Workers with OpenNext
  • Comprehensive test suite covering various Next.js features (middleware, server components, route handlers, ISR, metrics)
  • Multiple tests are skipped with TODOs noting CF Workers-specific limitations

Reviewed changes

Copilot reviewed 57 out of 63 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
wrangler.jsoncCloudflare Workers configuration with nodejs_compat and asset bindings
package.jsonDependencies and build scripts for CF Workers deployment
tsconfig.jsonTypeScript configuration for the test application
next.config.tsNext.js configuration with Sentry integration
open-next.config.tsOpenNext configuration for Cloudflare deployment
playwright.config.mjsPlaywright test configuration
sentry.server.config.tsServer-side Sentry configuration
sentry.edge.config.tsEdge runtime Sentry configuration
instrumentation.tsServer instrumentation with onRequestError hook
instrumentation-client.tsClient-side instrumentation
middleware.tsEdge middleware implementation
tests/*.test.tsTest files covering various Next.js features with CF Workers
app/*Test application pages, layouts, and route handlers

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated
Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated

@andreiborzaandreiborza left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should we switch to proxy.ts?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Opennext + CF workers don't work with proxy yet, but it works with Next.js 16 somehow, I think CF workers convert it to a serverless function or something. I will take a look later.

@logaretm
logaretm merged commit 693ca47 into developJan 26, 2026
61 of 64 checks passed
@logaretm
logaretm deleted the awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime branch January 26, 2026 15:15
@tristanbes

tristanbes commented Feb 6, 2026

Copy link
Copy Markdown

Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕

FYI its a known opennext cloudflare adapter limitation; they don't support proxy middleware yet @logaretm .

Issues to track:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test: Added nextjs CF workers test app

6 participants

@logaretm@tristanbes@JPeer264@chargome@andreiborza
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

test(nextjs): Added nextjs CF workers test app - #18928

Merged
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime
Jan 26, 2026
Merged

test(nextjs): Added nextjs CF workers test app#18928
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime

Conversation

@logaretm

@logaretmlogaretm commented Jan 21, 2026

Copy link
Copy Markdown
Member

This PR sets up E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext.

Some tests yield different transaction names and span attributes, I will review each of the skipped tests and review the differences and if we should either consolidate the edge runtime behavior with the node runtime behavior.

Known Limitations

Those are the test failures that required skipping.

  • Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕
  • HTTP request headers not extracted as span attributes
  • Metrics not emitting on Cloudflare Workers
  • Middleware transaction_info.source is 'url' instead of 'route'
  • Server component spans have different names (e.g., 'resolve segment modules' instead of specific component names)
  • Missing http.response.status_code / http.status_code attributes

I plan to follow up with another PR to address these, but the higher priority is making sure the SDK doesn't crash and works to some degree on CF worker apps.

Closes#18929 (added automatically)

@linear

linearBot commented Jan 21, 2026

Copy link
Copy Markdown

@logaretmlogaretm changed the title test: Added nextjs CF workers test apptest(nextjs): Added nextjs CF workers test appJan 21, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext. The primary goal is to verify that the Sentry SDK doesn't crash when running in this environment, with several tests intentionally skipped due to known limitations in the CF Workers runtime.

Changes:

  • New test application configuration for Next.js 16 on Cloudflare Workers with OpenNext
  • Comprehensive test suite covering various Next.js features (middleware, server components, route handlers, ISR, metrics)
  • Multiple tests are skipped with TODOs noting CF Workers-specific limitations

Reviewed changes

Copilot reviewed 57 out of 63 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
wrangler.jsoncCloudflare Workers configuration with nodejs_compat and asset bindings
package.jsonDependencies and build scripts for CF Workers deployment
tsconfig.jsonTypeScript configuration for the test application
next.config.tsNext.js configuration with Sentry integration
open-next.config.tsOpenNext configuration for Cloudflare deployment
playwright.config.mjsPlaywright test configuration
sentry.server.config.tsServer-side Sentry configuration
sentry.edge.config.tsEdge runtime Sentry configuration
instrumentation.tsServer instrumentation with onRequestError hook
instrumentation-client.tsClient-side instrumentation
middleware.tsEdge middleware implementation
tests/*.test.tsTest files covering various Next.js features with CF Workers
app/*Test application pages, layouts, and route handlers

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated
Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated

@andreiborzaandreiborza left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should we switch to proxy.ts?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Opennext + CF workers don't work with proxy yet, but it works with Next.js 16 somehow, I think CF workers convert it to a serverless function or something. I will take a look later.

@logaretm
logaretm merged commit 693ca47 into developJan 26, 2026
61 of 64 checks passed
@logaretm
logaretm deleted the awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime branch January 26, 2026 15:15
@tristanbes

tristanbes commented Feb 6, 2026

Copy link
Copy Markdown

Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕

FYI its a known opennext cloudflare adapter limitation; they don't support proxy middleware yet @logaretm .

Issues to track:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test: Added nextjs CF workers test app

6 participants

@logaretm@tristanbes@JPeer264@chargome@andreiborza
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

test(nextjs): Added nextjs CF workers test app - #18928

Merged
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime
Jan 26, 2026
Merged

test(nextjs): Added nextjs CF workers test app#18928
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime

Conversation

@logaretm

@logaretmlogaretm commented Jan 21, 2026

Copy link
Copy Markdown
Member

This PR sets up E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext.

Some tests yield different transaction names and span attributes, I will review each of the skipped tests and review the differences and if we should either consolidate the edge runtime behavior with the node runtime behavior.

Known Limitations

Those are the test failures that required skipping.

  • Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕
  • HTTP request headers not extracted as span attributes
  • Metrics not emitting on Cloudflare Workers
  • Middleware transaction_info.source is 'url' instead of 'route'
  • Server component spans have different names (e.g., 'resolve segment modules' instead of specific component names)
  • Missing http.response.status_code / http.status_code attributes

I plan to follow up with another PR to address these, but the higher priority is making sure the SDK doesn't crash and works to some degree on CF worker apps.

Closes#18929 (added automatically)

@linear

linearBot commented Jan 21, 2026

Copy link
Copy Markdown

@logaretmlogaretm changed the title test: Added nextjs CF workers test apptest(nextjs): Added nextjs CF workers test appJan 21, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext. The primary goal is to verify that the Sentry SDK doesn't crash when running in this environment, with several tests intentionally skipped due to known limitations in the CF Workers runtime.

Changes:

  • New test application configuration for Next.js 16 on Cloudflare Workers with OpenNext
  • Comprehensive test suite covering various Next.js features (middleware, server components, route handlers, ISR, metrics)
  • Multiple tests are skipped with TODOs noting CF Workers-specific limitations

Reviewed changes

Copilot reviewed 57 out of 63 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
wrangler.jsoncCloudflare Workers configuration with nodejs_compat and asset bindings
package.jsonDependencies and build scripts for CF Workers deployment
tsconfig.jsonTypeScript configuration for the test application
next.config.tsNext.js configuration with Sentry integration
open-next.config.tsOpenNext configuration for Cloudflare deployment
playwright.config.mjsPlaywright test configuration
sentry.server.config.tsServer-side Sentry configuration
sentry.edge.config.tsEdge runtime Sentry configuration
instrumentation.tsServer instrumentation with onRequestError hook
instrumentation-client.tsClient-side instrumentation
middleware.tsEdge middleware implementation
tests/*.test.tsTest files covering various Next.js features with CF Workers
app/*Test application pages, layouts, and route handlers

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated
Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated

@andreiborzaandreiborza left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should we switch to proxy.ts?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Opennext + CF workers don't work with proxy yet, but it works with Next.js 16 somehow, I think CF workers convert it to a serverless function or something. I will take a look later.

@logaretm
logaretm merged commit 693ca47 into developJan 26, 2026
61 of 64 checks passed
@logaretm
logaretm deleted the awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime branch January 26, 2026 15:15
@tristanbes

tristanbes commented Feb 6, 2026

Copy link
Copy Markdown

Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕

FYI its a known opennext cloudflare adapter limitation; they don't support proxy middleware yet @logaretm .

Issues to track:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test: Added nextjs CF workers test app

6 participants

@logaretm@tristanbes@JPeer264@chargome@andreiborza
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

test(nextjs): Added nextjs CF workers test app - #18928

Merged
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime
Jan 26, 2026
Merged

test(nextjs): Added nextjs CF workers test app#18928
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime

Conversation

@logaretm

@logaretmlogaretm commented Jan 21, 2026

Copy link
Copy Markdown
Member

This PR sets up E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext.

Some tests yield different transaction names and span attributes, I will review each of the skipped tests and review the differences and if we should either consolidate the edge runtime behavior with the node runtime behavior.

Known Limitations

Those are the test failures that required skipping.

  • Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕
  • HTTP request headers not extracted as span attributes
  • Metrics not emitting on Cloudflare Workers
  • Middleware transaction_info.source is 'url' instead of 'route'
  • Server component spans have different names (e.g., 'resolve segment modules' instead of specific component names)
  • Missing http.response.status_code / http.status_code attributes

I plan to follow up with another PR to address these, but the higher priority is making sure the SDK doesn't crash and works to some degree on CF worker apps.

Closes#18929 (added automatically)

@linear

linearBot commented Jan 21, 2026

Copy link
Copy Markdown

@logaretmlogaretm changed the title test: Added nextjs CF workers test apptest(nextjs): Added nextjs CF workers test appJan 21, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext. The primary goal is to verify that the Sentry SDK doesn't crash when running in this environment, with several tests intentionally skipped due to known limitations in the CF Workers runtime.

Changes:

  • New test application configuration for Next.js 16 on Cloudflare Workers with OpenNext
  • Comprehensive test suite covering various Next.js features (middleware, server components, route handlers, ISR, metrics)
  • Multiple tests are skipped with TODOs noting CF Workers-specific limitations

Reviewed changes

Copilot reviewed 57 out of 63 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
wrangler.jsoncCloudflare Workers configuration with nodejs_compat and asset bindings
package.jsonDependencies and build scripts for CF Workers deployment
tsconfig.jsonTypeScript configuration for the test application
next.config.tsNext.js configuration with Sentry integration
open-next.config.tsOpenNext configuration for Cloudflare deployment
playwright.config.mjsPlaywright test configuration
sentry.server.config.tsServer-side Sentry configuration
sentry.edge.config.tsEdge runtime Sentry configuration
instrumentation.tsServer instrumentation with onRequestError hook
instrumentation-client.tsClient-side instrumentation
middleware.tsEdge middleware implementation
tests/*.test.tsTest files covering various Next.js features with CF Workers
app/*Test application pages, layouts, and route handlers

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated
Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated

@andreiborzaandreiborza left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should we switch to proxy.ts?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Opennext + CF workers don't work with proxy yet, but it works with Next.js 16 somehow, I think CF workers convert it to a serverless function or something. I will take a look later.

@logaretm
logaretm merged commit 693ca47 into developJan 26, 2026
61 of 64 checks passed
@logaretm
logaretm deleted the awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime branch January 26, 2026 15:15
@tristanbes

tristanbes commented Feb 6, 2026

Copy link
Copy Markdown

Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕

FYI its a known opennext cloudflare adapter limitation; they don't support proxy middleware yet @logaretm .

Issues to track:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test: Added nextjs CF workers test app

6 participants

@logaretm@tristanbes@JPeer264@chargome@andreiborza
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

test(nextjs): Added nextjs CF workers test app - #18928

Merged
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime
Jan 26, 2026
Merged

test(nextjs): Added nextjs CF workers test app#18928
logaretm merged 4 commits into
developfrom
awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime

Conversation

@logaretm

@logaretmlogaretm commented Jan 21, 2026

Copy link
Copy Markdown
Member

This PR sets up E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext.

Some tests yield different transaction names and span attributes, I will review each of the skipped tests and review the differences and if we should either consolidate the edge runtime behavior with the node runtime behavior.

Known Limitations

Those are the test failures that required skipping.

  • Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕
  • HTTP request headers not extracted as span attributes
  • Metrics not emitting on Cloudflare Workers
  • Middleware transaction_info.source is 'url' instead of 'route'
  • Server component spans have different names (e.g., 'resolve segment modules' instead of specific component names)
  • Missing http.response.status_code / http.status_code attributes

I plan to follow up with another PR to address these, but the higher priority is making sure the SDK doesn't crash and works to some degree on CF worker apps.

Closes#18929 (added automatically)

@linear

linearBot commented Jan 21, 2026

Copy link
Copy Markdown

@logaretmlogaretm changed the title test: Added nextjs CF workers test apptest(nextjs): Added nextjs CF workers test appJan 21, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds E2E tests for Next.js 16 running on Cloudflare Workers using OpenNext. The primary goal is to verify that the Sentry SDK doesn't crash when running in this environment, with several tests intentionally skipped due to known limitations in the CF Workers runtime.

Changes:

  • New test application configuration for Next.js 16 on Cloudflare Workers with OpenNext
  • Comprehensive test suite covering various Next.js features (middleware, server components, route handlers, ISR, metrics)
  • Multiple tests are skipped with TODOs noting CF Workers-specific limitations

Reviewed changes

Copilot reviewed 57 out of 63 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
wrangler.jsoncCloudflare Workers configuration with nodejs_compat and asset bindings
package.jsonDependencies and build scripts for CF Workers deployment
tsconfig.jsonTypeScript configuration for the test application
next.config.tsNext.js configuration with Sentry integration
open-next.config.tsOpenNext configuration for Cloudflare deployment
playwright.config.mjsPlaywright test configuration
sentry.server.config.tsServer-side Sentry configuration
sentry.edge.config.tsEdge runtime Sentry configuration
instrumentation.tsServer instrumentation with onRequestError hook
instrumentation-client.tsClient-side instrumentation
middleware.tsEdge middleware implementation
tests/*.test.tsTest files covering various Next.js features with CF Workers
app/*Test application pages, layouts, and route handlers

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated
Comment threaddev-packages/e2e-tests/test-applications/nextjs-16-cf-workers/package.json Outdated

@andreiborzaandreiborza left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should we switch to proxy.ts?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Opennext + CF workers don't work with proxy yet, but it works with Next.js 16 somehow, I think CF workers convert it to a serverless function or something. I will take a look later.

@logaretm
logaretm merged commit 693ca47 into developJan 26, 2026
61 of 64 checks passed
@logaretm
logaretm deleted the awad/js-1529-add-nextjs-e2e-tests-on-cloudflare-workers-runtime branch January 26, 2026 15:15
@tristanbes

tristanbes commented Feb 6, 2026

Copy link
Copy Markdown

Middleware proxy filename not being picked up by opennext, yet middleware works on Next 16 😕

FYI its a known opennext cloudflare adapter limitation; they don't support proxy middleware yet @logaretm .

Issues to track:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test: Added nextjs CF workers test app

6 participants

@logaretm@tristanbes@JPeer264@chargome@andreiborza