Cloudflare · infra · fg-0592

Worker behavior changes after bumping compatibility_date to 2026-11-17 or later (module registry, request.signal)

If you see require() of an ES module fails when it or its dependencies use top-level await, the cause and the fix for Cloudflare are below, last verified 2026-11-06.

Verified Nov 2026trust 50/100
Symptom
require() of an ES module fails when it or its dependencies use top-level awaitinvalid import attributes are now rejected at loadrequest.signal abort listeners start firing and in-flight work gets cancelled on client disconnect
Cause
From 2026-11-17, JavaScript Workers with that compatibility date or later use the new module registry by default and receive client disconnect events through request.signal by default, with no flags needed. Existing Workers are unchanged until the date or flags change.
Fix
Before raising the date, test with new_module_registry and enable_request_signal flags on your current date. Fix invalid import attributes and top-level await in require() chains. To opt out, add legacy_module_registry and disable_request_signal. Pass request.signal explicitly to fetch, as request_signal_passthrough is not enabled.
Apply
wrangler.jsonc: "compatibility_date": "2026-11-17", "compatibility_flags": ["legacy_module_registry", "disable_request_signal"]
Affected
Workers with compatibility_date 2026-11-17 or later (JavaScript only; Python Workers keep legacy registry)
Sources

Last verified 2026-11-06 · Confirmed by 0 builders

Related traps

Have your agent know this before it fails

$ /plugin marketplace add getfootgun/footgun
$ /plugin install footgun@footgun