chore(deps): update dependency wrangler to ^4.123.0 - #499
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
website | b530da2 | Commit Preview URL Branch Preview URL |
Aug 13 2026, 06:14 PM |
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
from
April 13, 2026 20:39
aca5909 to
0fb86fe
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
2 times, most recently
from
April 15, 2026 09:50
0fb86fe to
e500f1a
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
2 times, most recently
from
April 20, 2026 20:13
e500f1a to
9e7f8f5
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
2 times, most recently
from
April 24, 2026 13:37
9e7f8f5 to
fa9cb6f
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
2 times, most recently
from
April 28, 2026 17:36
fa9cb6f to
1a353dd
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
3 times, most recently
from
May 7, 2026 21:05
2f8f12f to
f279c45
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
from
May 12, 2026 12:00
f279c45 to
58ebf9e
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
from
May 14, 2026 13:47
58ebf9e to
54dbef1
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
from
May 15, 2026 13:41
54dbef1 to
773374b
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
from
May 19, 2026 15:31
773374b to
37261c7
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
from
May 21, 2026 14:13
37261c7 to
b81c64f
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
from
May 22, 2026 15:55
b81c64f to
eb11345
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
from
May 26, 2026 22:51
eb11345 to
620d304
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
from
June 1, 2026 19:00
620d304 to
9919dcd
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
from
June 2, 2026 16:06
9919dcd to
a6a1802
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
from
June 4, 2026 13:52
a6a1802 to
5e3d4ae
Compare
renovate
Bot
force-pushed
the
renovate/wrangler-4.x
branch
from
June 9, 2026 15:41
5e3d4ae to
146b4d2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^4.104.0→^4.123.0Release Notes
cloudflare/workers-sdk (wrangler)
v4.123.0Compare Source
Minor Changes
#15113
b8fd112Thanks @BSFishy! - Add local dev simulation for Cloudflare Accessctx.access.getIdentity()You can now configure a mock Cloudflare Access identity in
wrangler.jsonso thatctx.access.getIdentity()returns it during local development.#15152
f0f2054Thanks @GregBrimble! - [private beta]: Updates the--ignore-defaultsflag to--ignore-base-configonwrangler previewcommands.--ignore-base-confignow only takes effect on Preview creation, rather than on each deployment, since Preview base configuration is now copy-on-create rather than inherit-on-deploy.#14872
339509dThanks @dario-piotrowicz! - Add automatic update prompts for out-of-date Cloudflare agent skillsWhen Cloudflare skills were previously installed by Wrangler and the upstream
cloudflare/skillsrepository has newer content, Wrangler now offers to update them after eligible commands complete.To reduce prompt fatigue, the update check only runs once a month (30 days since the last install or update). Declining suppresses the prompt until the next upstream change.
When declining an update, Wrangler offers the option to permanently disable future update prompts. This preference is stored globally in
~/.wrangler/agents-skills-install.jsonc. TheWRANGLER_NO_SKILLS_UPDATE_PROMPTS=trueenvironment variable can also be used to suppress prompts. The--install-skillsflag remains available regardless of these settings.Patch Changes
b8fd112]:v4.122.0Compare Source
Minor Changes
#15123
d0c976cThanks @dependabot! - Detect Node.js compatibility from the compatibility date, now thatnodejs_compatis enabled by defaultAs of compatibility date
2026-08-04, workerd enables thenodejs_compatandnodejs_compat_v2compatibility flags by default. Previously these tools only treated Node.js compatibility as enabled when one of those flags was listed explicitly, so a Worker on a compatibility date of2026-08-04or later without the flag would get Node.js APIs from the runtime but no Node.js polyfills from the bundler, andprocess.envcould be substituted with an empty object at build time. They now resolve these flags the same way workerd does, and honourno_nodejs_compatto opt out.To keep Node.js compatibility switched off on a newer compatibility date, specify both
no_nodejs_compatandno_nodejs_compat_v2, since each flag has its own default.@cloudflare/vitest-pool-workersneedsnodejs_compat_v2for its own test runner, so it continues to override a project that opts out of it. On a compatibility date that enables the flag anyway, it now drops the opt-out rather than adding the flag back, which workerd would reject — previously this stopped such a project from running any tests at all.wrangler typesalso no longer attributes its@types/nodesuggestion to "thenodejs_compatflag", which it can now make for Workers that do not set the flag at all.Patch Changes
#15123
d0c976cThanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#15148
0b82b15Thanks @jamesopstad! - Ignore anodejs_compatcompatibility flag that the compatibility date already enablesworkerd rejects a compatibility flag that its compatibility date enables by default, so a Worker configured with both a compatibility date of
2026-08-04or later andnodejs_compatfailed to start locally with "The compatibility flag nodejs_compat became the default as of 2026-08-04 so does not need to be specified anymore".The redundant
nodejs_compatandnodejs_compat_v2flags are now dropped when starting the runtime, which has no effect on the resulting Worker because the compatibility date enables both anyway.no_nodejs_compatandno_nodejs_compat_v2still switch Node.js compatibility off, and a flag specified alongside its own opt-out is left alone so that workerd still reports those as contradictory.#15123
d0c976cThanks @dependabot! - Stop adding a redundantnodejs_compatflag to generated Wrangler configurationscreate-cloudflareandwrangler setupwrite today's date as thecompatibility_date, and from2026-08-04that already enablesnodejs_compat. Adding the flag as well made the generated project fail to start with "The compatibility flag nodejs_compat became the default as of 2026-08-04 so does not need to be specified anymore", so the flag is now only added for earlier compatibility dates.create-cloudflarealso removes the flag when a template, or a framework's own scaffolder, already wrote it into a configuration that ends up using such a compatibility date, and still installs@types/nodefor these projects even though there is no longer a flag to detect them by.wrangler setupdoes the same for awrangler.json(c)that is already in the project: it writes today's date over whatever date that configuration was written for, so anodejs_compatit finds there is removed as part of writing the file.#15142
3b02915Thanks @penalosa! - Fix remote binding sessions reusing stale binding configurationsStarting a new remote bindings session that reuses a Worker name no longer picks up the bindings from a previous session, which could cause
Binding "..." not founderrors.Updated dependencies [
d0c976c,d0c976c,0b82b15,d0c976c,90dd5e5]:v4.121.0Compare Source
Minor Changes
#15079
15cad03Thanks @podonnell-dev! - Add Preview base config secret commandsWrangler now manages Worker Preview base config secrets with
wrangler preview base-config secret put,delete,list, andbulk. These commands update the Worker'spreviews_base_config.env, keeping shared defaults scoped to all of that Worker's Previews.wrangler preview base-config secret listreads from the Worker's Preview base config and prints secret names with values masked.wrangler preview base-config secret bulkdeletes a secret when its value isnull, matchingwrangler secret bulk.#15000
731b33aThanks @edmundhung! - Allow Wrangler projects to build a Worker once and reuse it increateTestHarness()Build the Worker once:
Then reuse the emitted Worker during test harness startup and reset:
#14737
e1b5b4bThanks @ttoino! - Addemail.sendingas an event subscription source for queueswrangler queues subscription createnow accepts--source email.sendingalongside two new flags,--zone-idand--domain, which identify the zone and the sending domain (zone apex or a verified subdomain) to subscribe to. Both flags are required for this source. The subscription's resource is displayed as the sending domain inwrangler queues subscription get.#15073
d669088Thanks @FlorentCollin! - Add US jurisdiction support towrangler d1 createYou can now create a D1 database in the US jurisdiction with
wrangler d1 create <name> --jurisdiction us. The new jurisdiction is also listed in the command's help output.#15079
15cad03Thanks @podonnell-dev! - Use Preview deployment PATCH APIs for Preview secret commandsWrangler now updates Worker Preview secrets by patching the named Preview's latest deployment instead of patching the Worker's Previews settings. This keeps secret changes scoped to one Preview, avoids affecting production or other Previews, and creates a new Preview deployment that goes live at 100% immediately.
wrangler preview secret listnow reads from the named Preview's latest deployment and prints secret names with values masked.wrangler preview secret bulknow deletes a secret when its value isnull, matchingwrangler secret bulk.#14924
0aa8fa5Thanks @ariesclark! - HonorDO_NOT_TRACK=1as a telemetry opt-outWrangler now disables telemetry when
DO_NOT_TRACK=1is set, regardless of other telemetry settings.Patch Changes
#15081
026e058Thanks @podonnell-dev! - Compactwrangler previewdeployment success outputwrangler previewnow prints a concise success summary with the Preview name, Preview URL, deployment ID, and Deployment URL instead of the previous box-art settings summary.#15132
5b1b930Thanks @dario-piotrowicz! - Fetch script metadata directly instead of listing all scriptsWhen resolving Durable Object migrations, fetch the specific script's service metadata via
/workers/services/{name}instead of listing all scripts in the account via/workers/scripts. This avoids downloading metadata for every Worker in the account just to find one script's migration tag.#15032
6e7d37dThanks @Sertug17! - Fixwrangler devcommands crashing withNo such module "wrangler:modules-watch"when"no_bundle": trueRunning
wrangler devorwrangler pages devwith bundling disabled ("no_bundle": trueinwrangler.json, or the--no-bundleflag) no longer crashes at startup withUncaught Error: No such module "wrangler:modules-watch". Live reloading on file changes continues to work as before.Updated dependencies [
c7aede7]:v4.120.1Compare Source
Patch Changes
#15072
6dbd192Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#14994
2194f88Thanks @emily-shen! - Update local development for Miniflare's config-based optionsWrangler now converts the Miniflare options it creates for local development to Miniflare's config-based
workersshape.Users should not expect to notice any changes.
Updated dependencies [
6dbd192,2194f88,2194f88,2194f88,2194f88,2194f88,2194f88]:v4.120.0Compare Source
Minor Changes
#15008
35c87e9Thanks @skepticfx! - Adds the ability to find container instances by exact ID or namewrangler containers instances <application_id> --search <instance_id_or_name>now searches every page and returns exact matches in human-readable or JSON output. JSON returns a top-level array, including an empty array when there is no match, while human-readable output prints a no-match message. If multiple instances have the same exact name, every matching instance is returned.#15008
35c87e9Thanks @skepticfx! - Add explicit pagination to container instance JSON outputUse
wrangler containers instances <application_id> --json --per-page <size>to return one page with machine-readableresult_info, then pass itsnext_page_tokento--page-tokento retrieve the next page. Plain--jsonremains backward-compatible: it requests the complete list and returns the existing top-level array.Patch Changes
#15013
8cf78c8Thanks @dario-piotrowicz! - Update undici from 7.28.0 to 7.29.0#15015
a60ff4dThanks @nickpatt! - Cut the per-request cost of local observability captureEvery tail event was written to the trace store as its own Durable Object call, so a request paid two or three round-trips per span. On a module-heavy app under the Vite plugin that dominated dev request latency. Rows are now buffered and written in batches, taking a request from roughly thirty calls to three.
Work in progress still shows up as it happens: the root span is written immediately, console logs and exceptions as they arrive, and a span's completion is written on the next event once 100ms has passed. An invocation that goes completely quiet writes nothing further until it ends, since the flush is driven by tail events rather than a timer.
The Vite plugin's own router, asset and proxy workers are also no longer captured. Their traces were noise the Observability views already hid, and skipping them cuts the spans recorded per request — a side benefit being that a trace's root is now your Worker rather than
__router-worker__.Updated dependencies [
b4f0c97,8cf78c8,a60ff4d,99eb50c]:v4.119.0Compare Source
Minor Changes
#14952
20470faThanks @nelsonjsduarte! - Add--parse-typeflag towrangler ai-search createwrangler ai-search createnow accepts--parse-typeto control how a website data source discovers URLs.sitemap(the default) reads XML sitemaps;discoverfollows links recursively.Previously the parse type could only be chosen through the interactive wizard, which was skipped whenever
--sourcewas supplied — so it was impossible to create adiscoverinstance from a script.The interactive wizard now offers
DiscoveralongsideSitemap.--parse-typeis only valid with--type web-crawler; passing it with--type builtinor--type r2is rejected, since the API stores the value for those source types but never reads it. When the flag is omitted in non-interactive mode the field is left unset and the API default (sitemap) applies.#14941
266172bThanks @nickpatt! - Improve the Local Explorer's Observability viewsconsole.logmessages now render the way the console would (JSON-encoded strings are unwrapped and multi-argument logs are joined), traces and events can be looked up by trace or span id from the search bar, and an event's "View trace" button jumps to the exact invocation that emitted it — even when a trace_id spans several invocations (e.g. a subrequest or self fetch).#14064
a9e5abbThanks @petebacondarwin! - Add support for OAuth 2.0 Device Authorization Grant towrangler loginRun
wrangler login --deviceto authenticate without a local callback server. Useful in containers, remote SSH sessions, Codespaces, and any other environment wherelocalhost:8976is unreachable from your browser.The new flow:
--browser=false),The verification URL is supplied by the authorization server, so it is rejected unless it is an
httpsURL on the same auth domain the device code was requested from — it is never printed or opened otherwise.--callback-hostand--callback-portcannot be combined with--device, since this flow does not start a local callback server.Patch Changes
#14984
9c74538Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#15012
0d33cb8Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
Updated dependencies [
9c74538,0d33cb8,a88d169,a88d169,daf65f2]:v4.118.0Compare Source
Minor Changes
#14057
cc63aaeThanks @matingathani! - Add--jsonflag towrangler containers infofor consistent JSON output with sibling commandslistandinstances#14944
a249591Thanks @nickpatt! - Enable local observability capture by default in devwrangler devand the Vite plugin now capture request traces and console logs into the Local Explorer's Observability tab out of the box — previously this was opt-in behindX_LOCAL_OBSERVABILITY=true. SetX_LOCAL_OBSERVABILITY=falseto opt out (for example if the extra per-worker collector/streaming-tail services cause trouble in a multi-process dev-registry setup).#14919
e0bbf55Thanks @avenceslau! - Add additional triggers to WorkflowsWorkers can now declaratively start a locally defined Workflow. Configure event subscriptions under
triggers.events; Wrangler validates each target and updates the script's event triggers during deployment.{ "triggers": { "events": [ { "type": "cf.artifacts.repo.pushed", "filter": { "namespace": "my-namespace", "repo_name": "my-repo" }, "targets": [ { "type": "workflow", "workflow_name": "my-workflow" } ] } ] } }Patch Changes
#14936
f92d1fcThanks @petebacondarwin! - Fixjsx_fragmentbeing ignored whenwrangler devruns a custom buildIf your project uses a custom build and sets both
jsx_factoryandjsx_fragment,wrangler devused yourjsx_factoryvalue for JSX fragments as well, so fragments compiled incorrectly. Yourjsx_fragmentvalue is now used.#14936
f92d1fcThanks @petebacondarwin! - Stopwrangler devstarting new work after you stop it or it reloadsStopping
wrangler dev, or having it reload after a configuration change, could still leave it starting work for the state it had just left behind: your custom build command could run once more after dev had stopped, a change to a file in your assets directory could be reported against configuration that had already been replaced, and in some cases the process could stay alive instead of exiting.That work is now discarded, so stopping or reloading
wrangler devleaves nothing running behind it.#14936
f92d1fcThanks @petebacondarwin! - Stopwrangler devfrom running custom builds concurrentlyWhen several watched files changed at once — for example during a
git pullor a "save all" —wrangler devstarted a custom build for every file that changed, so multiple copies of your build command ran at the same time and fought over the same output files.A burst of file changes now results in a single build, and a build only starts once the previous one has finished.
#13746
cec9d88Thanks @edmundhung! - Report a clear error for account IDs that can't be used in a Cloudflare API requestAccount IDs are substituted straight into Cloudflare API URL paths, so a value containing non-ASCII characters previously failed deep inside the request layer with an opaque
Cannot convert argument to a ByteStringerror that gave no hint about which setting was at fault. Account IDs read fromCLOUDFLARE_ACCOUNT_IDand from theaccount_idconfiguration field are now validated up front, and an invalid value fails with a message naming both the offending value and where it came from.v4.117.0Compare Source
Minor Changes
#14586
5a56ddaThanks @emily-shen! - RemovecontainerEnginefrom the worker options returned byunstable_getMiniflareWorkerOptionsunstable_getMiniflareWorkerOptionsno longer includescontainerEnginein the returnedworkerOptions, since the container engine is a Miniflare instance-wide setting rather than a per-worker one. Callers that build a Miniflare instance from these options should setcontainerEngineat the top level instead.Patch Changes
#14586
5a56ddaThanks @emily-shen! - Rewrite local testing paths (/cdn-cgi/*)Miniflare v5 moved its internal local testing endpoints to
/cdn-cgi/local/*(and/__cf_local/*for endpoints that must remain reachable over tunnels) to prevent any potential collision with production routes.wrangler devand the Vite plugin now transparently rewrite the old paths to the new ones, meaning you can continue to use the old paths without issue.These are the new paths:
/cdn-cgi/handler/scheduled→/cdn-cgi/local/scheduled/cdn-cgi/handler/email→/cdn-cgi/local/email/cdn-cgi/explorer/*→/cdn-cgi/local/explorer/*/cdn-cgi/mf/scheduled→/cdn-cgi/local/scheduled(Note/cdn-cgi/mf/scheduledis already deprecated)/cdn-cgi/mf/stream/*→/__cf_local/stream/*/cdn-cgi/mf/imagedelivery/*→/__cf_local/imagedelivery/*Updated dependencies [
5a56dda,5a56dda,5a56dda,5a56dda,5a56dda,5a56dda,5a56dda,5a56dda,5a56dda,5a56dda,5a56dda,5a56dda,5a56dda,5a56dda,5a56dda,5a56dda,5a56dda]:v4.116.0Compare Source
Minor Changes
#14907
beec0fbThanks @NuroDev! - Avoid Worker and workers.dev naming prompts in agent-driven deploysWrangler now derives the Worker name from the project and automatically registers the same project-derived workers.dev account subdomain on a first deploy when running in a detected agent environment. The deploy output explains how to change both names.
#14905
b21eac2Thanks @jamesopstad! - The experimental build output directory now includes the Worker's configuration at.cloudflare/output/v0/workers/default/config.jsoninstead of.cloudflare/output/v0/workers/<worker-name>/worker.config.json#14893
bb09f1bThanks @apeacock1991! - Graduatewrangler check startupfrom alpha and show bundle size and a local timing summaryThe command no longer prints an alpha warning. It now reports its local profile window, sampled active, garbage collection, and idle time alongside the raw and compressed bundle sizes. The existing measurement warning continues to distinguish these local measurements from startup time measured on Cloudflare.
#14685
01d7020Thanks @edmundhung! - Add support for dispatching email handlers withcreateTestHarnessYou can now call
server.getWorker().email({ from, to, raw })to dispatch directly to a Worker'semail()handler and inspect its outcome, rejection reason, forwarded messages, and replies.Patch Changes
#14929
48f0c6cThanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#14838
8049ca4Thanks @TheSaiEaranti! - Fix ctrl+c not being able to interrupt wrangler while waiting for Cloudflare Access authorizationWhen a domain is behind Cloudflare Access (for example during remote bindings startup), wrangler runs
cloudflared access login, which only returns once the user completes the authorization flow in the browser. This was invoked synchronously, blocking Node's event loop, so wrangler could not react to ctrl+c (or anything else) until the authorization completed — abandoning the browser flow left a hung wrangler process that had to be killed externally.cloudflaredis now spawned asynchronously, keeping wrangler responsive while it waits. The remote runtime passes its abort signal through to the spawn, so tearing down the session kills a still-pendingcloudflaredimmediately, with process exit as a last-resort cleanup.#14871
1394867Thanks @nickpatt! - Include the local observability query endpoint in the agent-facing Local Explorer hintThe hint
wrangler devprints for AI-agent sessions now listsPOST /cdn-cgi/explorer/api/local/observability/query, so agents can discover the read-only SQL endpoint for captured request traces and console logs (thespansandlogstables) alongside the existing binding and storage routes.#14918
cc54478Thanks @nickpatt! - Improve the agent-facing Local Explorer hint for the observability query endpointWhen a
wrangler devsession is detected as running inside an AI agent, the hint forPOST /local/observability/querynow explains that the endpoint takes a read-only SQL query (SELECT/WITH only) over the capturedspansandlogstables, notes thatattributesis JSON (read viajson(attributes)), and includes a copy-pasteablecurlexample. The full OpenAPI schema is demoted to a last-resort footer so agents reach for the small, actionable example first instead of fetching the large schema.#14897
e31ab0fThanks @ericclemmons! - Fixwrangler triggers deployto use Vite-generated redirected configurationThe command now reads
.wrangler/deploy/config.json, matchingwrangler deployandwrangler versions upload, so generated Worker names and trigger settings are applied.Updated dependencies [
01d7020,48f0c6c,d7f38c3,5c25cfe,1f61001]:v4.115.0Compare Source
Minor Changes
#14807
4dfb96eThanks @oOPa! - Add hidden--jurisdictionoption towrangler kv namespace createfor internal testingThis option creates a KV namespace within a specific jurisdiction (for example
us,eu, orfedramp), backing it with jurisdiction-scoped storage. It is experimental and currently gated to allow-listed accounts, so it is hidden from--helpuntil the feature is generally available.#14280
465c0fbThanks @tahmid-23! - Add experimentallocal_dev.experimental_s3_credentialstor2_bucketsconfigWhen set, the R2 bucket is served over a local S3-compatible API at
/cdn-cgi/local/r2/s3/<bucket-id>during local development, authenticated with the configured AWS SigV4 credentials.<bucket-id>is the bucket'sbucket_name, or the binding name ifbucket_nameis not set:{ "r2_buckets": [ { "binding": "BUCKET", "bucket_name": "my-bucket", "local_dev": { "experimental_s3_credentials": { "accessKeyId": "local-access-key-id", "secretAccessKey": "local-secret-access-key" } } } ] }#14877
552bcfcThanks @jasoncabot! - Respect and surface theRetry-Afterheader on Cloudflare API responsesPreviously, if a Wrangler command (e.g.
wrangler versions upload,wrangler deploy) hit the Cloudflare API's rate limit, the resulting error gave no indication of how long to wait before trying again, and 429 responses weren't retried at all (only5xxerrors were, with a fixed linear backoff).Now:
429 Too Many Requestsresponses are automatically retried, alongside the existing5xxretry behaviour.Retry-Afterheader, Wrangler waits for that duration instead of the default backoff, and logs a message indicating how long it's waiting. To avoid blocking for an excessive amount of time, waits longer than 60 seconds fail fast instead — the surfacedRetry-Aftervalue lets the caller schedule its own retry.Retry-Afterduration, and thecommand-failedentry written to the Wrangler output file (WRANGLER_OUTPUT_FILE_PATH/WRANGLER_OUTPUT_FILE_DIRECTORY) gains aretry_after_msfield. This lets scripts and CI/CD pipelines calling Wrangler repeatedly (for example,wrangler versions uploadon every commit) read the wait duration directly instead of regex-parsing stderr.APIError.isRetryable()is unchanged (still5xxonly);retryOnAPIFailure()separately retries 429s.retryAfterMs, when present, is honoured for any retried error, not just 429s.retryAfterMsis also now populated onAPIErrors raised from direct R2 object requests, the Browser Rendering API, and errors surfaced from commands using the officialcloudflareSDK client.#14712
6e0bf6eThanks @mack-erel! - Supportconnect()on remote VPC Network and VPC Service bindings in local developmentRemote VPC Network and VPC Service bindings previously only supported HTTP and JSRPC, so calling
binding.connect(address)against a private TCP service (for example a database) failed in local dev withIncoming CONNECT on a worker not supported. Raw TCP connections through remote VPC Network and VPC Service bindings now work in local development.This feature is experimental. Existing HTTP and JSRPC usage of remote VPC Network and VPC Service bindings is unaffected, and no new configuration is required.
Patch Changes
#14833
773ead4Thanks @DiogoSantoss! - Color Email Routing plan change markersWrangler now highlights additions in green, updates in yellow, and deletions and conflicts in red so Email Routing deployment plans are easier to scan before confirmation.
#14833
773ead4Thanks @DiogoSantoss! - Apply Email Routing changes across independent zones concurrentlyWrangler now limits concurrent zone updates while preserving the Email Routing plan order within each zone. Deployments that configure addresses across multiple zones complete faster without breaking delete-before-add transitions at a zone's rule limit.
#14815
09b8a44Thanks @chinesepowered! - Fixwrangler cloudchamber curlmangling header values that contain a colonHeader values were split on every colon and only the segment between the first and second was sent, so
--header location:https://example.com/xarrived ashttps. Headers are now split on the first colon only. A header that is not in the documented--header <name>:<value>form previously threw an unhandledTypeError, and now reports a clear error.#14806
e8b3a9dThanks @akim136! - Handle and explain authentication failures from remote bindings during local developmentWrangler now recognizes authentication failures from remote preview sessions and reports that bindings which need to run remotely require Cloudflare authentication even when the rest of the Worker is developed locally.
#14801
b737676Thanks @emily-shen! - Speed up old debug log cleanup by reading each log file's date from its filename instead ofstat-ing every fileWrangler periodically deletes debug log files older than 30 days from its logs directory. Previously it made a filesystem
statcall for each file to read its modification time; it now derives the age from the timestamp already encoded in the log filename, avoiding that extra work.Updated dependencies [
1035f74,e426cb9,3a22ae5,465c0fb,6e0bf6e]:v4.114.0Compare Source
Minor Changes
#14633
3203b5dThanks @nickpatt! - Add local-dev observabilitywrangler devand the Vite plugin now capture a trace for every local Worker invocation - spans, logs, andconsole.*output, including requests that cross worker or Durable Object boundaries.You can explore this data two ways:
/cdn-cgi/explorer/api/local/observability/query, discoverable via the Local Explorer's OpenAPI document, so coding agents and tools can query the samespansandlogstables.While this is in testing it's off by default; set
X_LOCAL_OBSERVABILITY=trueto turn it on. It will be on by default in the public release.Patch Changes
#14373
246ce92Thanks @Jacroney! - Improve the D1 database-limit error messageWhen creating a D1 database fails because the account has hit its database limit, the error now points to the relevant next steps — upgrading on the Workers Free plan or requesting a higher limit on a paid plan — alongside the existing commands to list and delete databases. Previously it only suggested deleting unused databases. This applies both to
wrangler d1 createand to the D1 database that is created during resource provisioning on deploy.#14796
c38a2c3Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#14788
8416b33Thanks @chinesepowered! - Fix grammar in the container image-too-large errorThe error thrown when a container image exceeds the available disk size ended with "Your need more disk for this image." It now reads "You need more disk for this image."
#14809
4683ff8Thanks [@jamesopstad](https://redirect.githConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.