wrangler@4.131.0
Minor Changes
-
#15480
36aed7fThanks @skepticfx! - Add Durable Object-managed Containers to top-level container configurationWrangler now accepts
scheduling_policy: "durable_object"in the top-levelcontainersarray and creates its namespace-backed application after the Worker upload resolves the Durable Object namespace ID. The namespace ID is also the application ID, so repeated deploys idempotently ensure the same application without name-based lookup, modification, or a Containers rollout.Durable Object-managed entries accept
class_name,scheduling_policy, an optionalname, and an optional namedimagesmap. Scheduler-only fields are rejected. Each image provides either a localdockerfileor a digest-pinned managed-registryimage. Wrangler builds or resolves each image, waits while Cloudflare prepares it for the Containers runtime, and uploads the resulting references with the Worker version for access throughctx.container.imagesandenv.EXPERIMENTAL_CLOUDFLARE_CONTAINER_IMAGES. Local development support for these entries is deferred to a follow-up.Existing scheduler-backed entries and Durable Object migrations continue to work unchanged.
With
--containers-rollout=none, existing Workers retain their deployed Container metadata and image binding even when localcontainersis omitted or empty; local scheduler edits are also ignored. The upload stops if the deployed versions cannot be recovered. Existing Workers for Platforms dispatch scripts reject this flag before upload because their API does not expose enough metadata to preserve Container associations safely. First deployments can still skip Container preparation and rollout. Without this flag, removing managed Containers, including by omittingcontainersentirely, clears the experimental image binding even withkeep_vars.versions deployvalidates the selected versions before changing traffic and creates their Durable Object-managed applications only after deployment succeeds. Bothdeployandversions deployreport partial completion if application creation fails afterward, with instructions to retry the same command.EXPERIMENTAL_CLOUDFLARE_CONTAINER_IMAGESis a temporary, reserved Wrangler binding until native Container image metadata is available. Its class keys identify managed applications duringversions deploy, including classes with empty image maps. User configuration cannot declare a binding with this name; existing versions that already use it are treated as Container configuration. -
#15493
493e635Thanks @GregBrimble! - Removewrangler preview settingscommandsThe private-beta
wrangler preview settingsandwrangler preview settings updatecommands are no longer available.
Patch Changes
-
#15411
0b43395Thanks @xgame92! - Failwrangler versions uploadearly when a Worker has a pending Durable Object migrationWrangler now directs users to run
wrangler deployto apply the migration instead of sending a version upload request that the API will reject. -
#15518
9d75006Thanks @taylorlee! - Detect named-only module Worker entrypoints correctlyWrangler now distinguishes named-only module Workers from legacy Service Workers that happen to have named exports. A default export identifies a module Worker; otherwise, legacy
addEventListenerregistration identifies Service Worker format. -
#15581
b605aa6Thanks @MattieTK! - Correct Pages-to-Workers delegation analytics for forced and ineligible commandsThe legacy
forcedresult counted every agent-driven Pages command using--force, including commands that could never have been delegated. Wrangler now emitseligible_forcedonly when--forceprevents an otherwise eligible delegation, and records other agent commands asineligiblewith a bounded reason and whether force was used. -
#15432
f45b596Thanks @razethion! - Prevent delayed internal errors from fetch-only remote bindingsFetch-only remote bindings such as D1 and R2 previously opened an unused WebSocket RPC session. RPC sessions are now created only when an RPC method is called.
-
#15585
f69f95aThanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
Dependency From To @cloudflare/workers-types ^5.20260908.1 ^5.20260910.1 workerd 1.20260908.1 1.20260910.1 -
#15554
bff525dThanks @XiaoZ-0218! - Add the missingtransferred_classesmigration to the config schemaDurableObjectMigrationdescribednew_classes,new_sqlite_classes,renamed_classesanddeleted_classes, but nottransferred_classes.normalizeAndValidateConfighas always validated that key, and the deploy path forwards it to the API along with the rest of the step, so Transfer migrations worked — butconfig-schema.jsonis generated from the type, so an editor resolving$schemareported a valid, documented migration as an unknown key.Adding the field to the type puts it in the generated schema. No runtime change.
-
#15584
96688b3Thanks @Svector-anu! - Bumpshell-quoteto 1.9.0+ to pick up two disclosed advisoriesshell-quote@1.8.1is affected by a ReDoS inparse()(CVE-2026-13311 / GHSA-395f-4hp3-45gv — an unauthenticated attacker who can feed a string intoparse()can block the event loop for tens of seconds with plain space-separated input, no shell metacharacters required) and by an object-token escaping bug inquote()(CVE-2026-9277 / GHSA-w7jw-789q-3m8p), both fixed upstream in1.9.0. Wrangler'sparse()wrapper (src/utils/shell-quote.ts) is reachable frompages dev/initcommand-line parsing, so the ReDoS applies; thequote()call site only ever passes string arguments, so the object-token issue was not reachable here, but there is no reason to stay on a vulnerable range once a patch exists. -
#15563
ed5797aThanks @Bortlesboat! - Encode filenames in Pages HTML redirectsFix
wrangler pages devreturning a 502 response when redirecting HTML paths containing Unicode characters. Keep reserved characters in filenames encoded in the redirect destination and preserve the request query string. -
#14889
128235aThanks @chinesepowered! - Fixwrangler types --strict-vars=falseemitting invalid TypeScript for an empty array varA var whose value was an empty array produced
()[], which is a syntax error. Because this lands in the generatedworker-configuration.d.ts, it did not just break that one line — the whole file failed to parse, so no binding types resolved at all. An empty array now generatesunknown[]. -
#15494
f8aea7eThanks @GregBrimble! - Usepreviews_base_configfor Preview configurationPreview commands now read the Worker Previews Base configuration from the
previews_base_configAPI field. -
#15569
24ef86bThanks @RealBhupesh! - Fixwrangler workflows instances describecrashing on dynamic retry delaysThe Workflows API serializes function retry delays as
"[dynamic]". The describe command previously parsed that as a duration, produced an Invalid Date, and threwRangeError: Invalid time valuebefore printing remaining steps. It now rendersunknown (dynamic delay)and also tolerates attempts whoseendtimestamp is missing. -
Updated dependencies [
f45b596,f69f95a,a549e58,dbb3ff4,fea3cd0,6bd7b6c,15cd6e1,be1caec,dbc9506]: