You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A command injection vulnerability (CWE-78) has been found to exist in the wrangler pages deploy command. The issue occurs because the --commit-hash parameter is passed directly to a shell command without proper validation or sanitization, allowing an attacker with control of --commit-hash to execute arbitrary commands on the system running Wrangler.
Root cause
The commitHash variable, derived from user input via the --commit-hash CLI argument, is interpolated directly into a shell command using template literals (e.g., execSync(`git show -s --format=%B ${commitHash}`)). Shell metacharacters are interpreted by the shell, enabling command execution.
Impact
This vulnerability is generally hard to exploit, as it requires --commit-hash to be attacker controlled. The vulnerability primarily affects CI/CD environments where wrangler pages deploy is used in automated pipelines and the --commit-hash parameter is populated from external, potentially untrusted sources. An attacker could exploit this to:
Run any shell command.
Exfiltrate environment variables.
Compromise the CI runner to install backdoors or modify build artifacts.
Mitigation
Wrangler v4 users are requested to upgrade to Wrangler v4.59.1 or higher.
Wrangler v3 users are requested to upgrade to Wrangler v3.114.17 or higher.
Users on Wrangler v2 (EOL) should upgrade to a supported major version.
The new --check flag allows you to verify that your generated types file is up-to-date without regenerating it. This is useful for CI/CD pipelines, pre-commit hooks, or any scenario where you want to ensure types have been committed after configuration changes.
When types are up-to-date, the command exits with code 0:
$ wrangler types --check
✨ Types at worker-configuration.d.ts are up to date.
When types are out-of-date, the command exits with code 1:
$ wrangler types --check
✘ [ERROR] Types at worker-configuration.d.ts are out of date. Run `wrangler types` to regenerate.
Wrangler can now read asset count limits from JWT claims during Pages deployments,
allowing users to be enabled for higher limits (up to 100,000 assets) on a per-account
basis. The default limit remains at 20,000 assets.
#117550f8d69d Thanks @nikitassharma! - Users can now specify constraints.tiers for their container applications. tier is deprecated in favor of tiers.
If left unset, we will default to tiers: [1, 2].
Note that constraints is an experimental feature.
Wrangler now detects when commands are executed by AI coding agents (such as Claude Code, Cursor, GitHub Copilot, etc.) using the am-i-vibing library. This information is included as an agent property in all analytics events, helping Cloudflare understand how developers interact with Wrangler through AI assistants.
The agent property will contain the agent ID (e.g., "claude-code", "cursor-agent") when detected, or null when running outside an agentic environment.
When running wrangler dev with a worker that has cron triggers, the warning message displayed an invalid URL like curl "http://localhost:undefined/cdn-cgi/handler/scheduled" because the port wasn't yet determined when the warning was logged.
Moved the warning to after the proxy server is fully ready, where the actual public URL and port are known.
The latest version of Waku (0.12.5-1.0.0-alpha.1-0) requires a src/waku.server.tsx file instead of a src/server-entry.tsx one, so the Wrangler autoconfig logic (the logic being run as part of wrangler setup and wrangler deploy --x-autoconfig that configures a project to be deployable on Cloudflare) has been updated accordingly.
Also the way the worker needs to handle static assets has been updated as recommended from the Waku team.
Previously, when using a redirected config (via configPath in another config file) that originated from a config with multiple environments, wrangler would incorrectly warn about missing environment specification. This fix ensures the warning is only shown when the actual config being used has multiple environments defined, not when the original config did.
The help output now groups commands by product category (Account, Compute & AI, Storage & Databases, Networking & Security) to match the Cloudflare dashboard organization:
$ wrangler --help
COMMANDS
wrangler docs [search..] 📚 Open Wrangler's command documentation in your browser
ACCOUNT
wrangler auth 🔓 Manage authentication
wrangler login 🔑 Login to Cloudflare
...
COMPUTE & AI
wrangler ai 🤖 Manage AI models
wrangler containers 📦 Manage Containers [open beta]
...
This improves discoverability by organizing the 20+ wrangler commands into logical groups.
#11524b0dbf1a Thanks @penalosa! - Add hidden CLI flags to wrangler setup for suppressing output
Two new hidden flags have been added to wrangler setup:
--no-completion-message: Suppresses the deployment details message after setup completes
--no-install-wrangler: Skips Wrangler installation during project setup
#1177769979a3 Thanks @MattieTK! - Add analytics properties to secret commands for better usage insights
Secret commands (wrangler secret put, wrangler secret bulk, and their Pages/versions equivalents) now include additional analytics properties to help understand how secrets are being managed:
secretOperation: Whether this is a "single" or "bulk" secret operation
secretSource: How the secret was provided ("interactive", "stdin", or "file")
secretFormat: For bulk operations, the format used ("json" or "dotenv")
hasEnvironment: Whether an environment was specified
These properties help improve the developer experience by understanding common usage patterns. No sensitive information (secret names, values, or counts) is tracked.
#1168302fbd22 Thanks @ascorbic! - Display a warning when authentication errors occur and the account_id in your Wrangler configuration does not match any of your authenticated accounts. This helps identify configuration issues where you may have the wrong account ID set in your wrangler.toml or wrangler.jsonc file.
#1170477078ef Thanks @dario-piotrowicz! - Fix autoconfig handling of Next.js apps with CJS config files and incompatible Next.js versions
Previously, wrangler setup and wrangler deploy --x-autoconfig would fail when working with Next.js applications that use CommonJS config files (next.config.cjs) or have versions of Next.js that don't match the required peer dependencies. The autoconfig process now uses dynamic imports and forced installation to handle these scenarios gracefully.
#117962510723 Thanks @dario-piotrowicz! - wrangler deploy delegates to opennextjs-cloudflare deploy only when the --x-autoconfig flag is used
The wrangler deploy command has been updated to delegate to the opennextjs-cloudflare deploy command when run in an open-next project. Once this behavior had been introduced it caused a few issues. So it's been decided to enable it for the time being only when the --x-autoconfig flag is set (since this behavior, although generally valid, is only strictly necessary for the wrangler deploy's autoconfig flow).
The wrangler r2 bucket catalog snapshot-expiration enable command was sending incorrect field names
to the Cloudflare API, resulting in a 422 Unprocessable Entity error. This fix updates the API request
body to use the correct field names:
The CLI options (--older-than-days and --retain-last) remain unchanged.
#11651d123ad0 Thanks @dario-piotrowicz! - Surface a more helpful error message for TOML Date, Date-Time, and Time values in vars
TOML parses unquoted date/time values like DATE = 2024-01-01 as objects. Previously this would cause an unhelpful error message further down the stack. Now wrangler surfaces a more helpful error message earlier, telling you to quote the value as a string, e.g. DATE = "2024-01-01".
Previously, running wrangler d1 migrations apply, wrangler d1 migrations list, or wrangler d1 migrations create in a directory without a Wrangler configuration file would silently exit with no feedback. Now these commands display a clear error message:
"No configuration file found. Create a wrangler.jsonc file to define your D1 database."
#1171082e7e90 Thanks @dario-piotrowicz! - Fix arguments passed to wrangler deploy not being forwarded to opennextjs-cloudflare deploy
wrangler deploy run in an open-next project delegates to opennextjs-cloudflare deploy, as part of this all the arguments passed to wrangler deploy need be forwarded to opennextjs-cloudflare deploy, before the arguments would be lost, now they will be successfully forwarded (for example wrangler deploy --keep-vars will call opennextjs-cloudflare deploy --keep-vars)
When running wrangler dev, the local server suppresses Miniflare's reload messages to prevent duplicate log entries from the proxy and user workers. This update adds a reload complete message so users know their changes were applied, instead of only seeing "Reloading local server...".
#11673b827893 Thanks @MattieTK! - Breaks out version numbers into sortable number types for analytics logging
#11196171cfd9 Thanks @emily-shen! - For containers being created in a FedRAMP high environment, registry credentials are encrypted by the container platform.
Update wrangler to correctly send a request to configure a registry for FedRAMP containers.
Snapshot expiration helps manage storage costs by automatically removing old table snapshots while keeping a minimum number of recent snapshots for recovery purposes.
#11649428ae9e Thanks @ascorbic! - fix: respect TypeScript path aliases when resolving non-JS modules with module rules
When importing non-JavaScript files (like .graphql, .txt, etc.) using TypeScript path aliases defined in tsconfig.json, Wrangler's module-collection plugin now correctly resolves these imports. Previously, path aliases were only respected for JavaScript/TypeScript files, causing imports like import schema from '~lib/schema.graphql' to fail when using module rules.
#11647c0e249e Thanks @dario-piotrowicz! - The auto-configuration logic present in wrangler setup and wrangler deploy --x-autoconfig cannot reliably handle Hono projects, so in these cases make sure to properly error saying that automatically configuring such projects is not supported.
#116943853200 Thanks @dario-piotrowicz! - fix: improve the open-next detection that wrangler deploy performs to eliminate false positives for non open-next projects
#11615ed42010 Thanks @elithrar! - Add helpful warning when SSL certificate errors occur due to corporate proxies or VPNs intercepting HTTPS traffic. When errors like "self-signed certificate in certificate chain" are detected, wrangler now displays guidance about installing missing system roots from your corporate proxy vendor.
#1155095d81e1 Thanks @hiendv! - Fix "TypeError: Body is unusable: Body has already been read" when failing to exchange oauth code because of double response.text().
You can now use containers with Durable Objects that are accessed via ctx.exports.
Now your config file can look something like this:
{
"name": "container-app",
"main": "src/index.ts",
"compatibility_date": "2025-12-01",
"compatibility_flags": ["enable_ctx_exports"], // compat flag needed for now.
"containers": [
{
"image": "./Dockerfile",
"class_name": "MyDOClassname",
"name": "my-container"
},
],
"migrations": [
{
"tag": "v1",
"new_sqlite_classes": ["MyDOClassname"],
},
],
// no need to declare your durable object binding here
}
Note that when using ctx.exports, where you previously accessed a Durable Object via something like env.DO, you should now access with ctx.exports.MyDOClassname.
#11508b17797c Thanks @dario-piotrowicz! - Wrangler will no longer try to add additional configuration to projects using @cloudflare/vite-plugin when deploying or running wrangler setup
Internal customers are able to use additional image registries and will run into failures with this validation. Image registry validation will now be handled by the API.
This change augments wrangler deploy output being printed to WRANGLER_OUTPUT_FILE_DIRECTORY or WRANGLER_OUTPUT_FILE_PATH to also include a new autoconfig_summary field containing the possible summary details for the autoconfig process (the field is undefined if autoconfig didn't run).
Note: the field is experimental and could change while autoconfig is not GA
#109379514c9a Thanks @ReppCodes! - Add support for "targeted" placement mode with region, host, and hostname fields
This change adds a new mode to placement configuration. You can specify one of the following fields to target specific external resources for Worker placement:
region: Specify a region identifier (e.g., "aws:us-east-1") to target a region from another cloud service provider
host: Specify a host with (required) port (e.g., "example.com:8123") to target a TCP service
hostname: Specify a hostname (e.g., "example.com") to target an HTTP resource
These fields are mutually exclusive - only one can be specified at a time.
The remote diffing feature has been enabled by default for a while and its functionality is stable, as a result the experimental flag (only available for option-out of the feature right now) has been removed.
Now when you run wrangler deploy Wrangler will check the remote secrets for your workers for conflicts with the names of the bindings you're about to deploy. If there are conflicts, Wrangler will warn you and ask you for your permission before proceeding.
#113606b38532 Thanks @emily-shen! - Containers: Allow users to directly authenticate external image registries in local dev
Previously, we always queried the API for stored registry credentials and used those to pull images. This means that if you are using an external registry (ECR, dockerhub) then you have to configure registry credentials remotely before running local dev.
Now you can directly authenticate with your external registry provider (using docker login etc.), and Wrangler or Vite will be able to pull the image specified in the containers.image field in your config file.
The Cloudflare-managed registry (registry.cloudflare.com) currently still does not work with the Vite plugin.
#11009e4ddbc2 Thanks @dario-piotrowicz! - Allow users to provide an account_id as part of the WorkerConfigObject they pass to maybeStartOrUpdateRemoteProxySession
#11346a977701 Thanks @penalosa! - We're soon going to make backend changes that mean that wrangler dev --remote sessions will no longer have an associated inspector connection. In advance of these backend changes, we've enabled a new wrangler tail-based logging strategy for wrangler dev --remote. For now, you can revert to the previous logging strategy with wrangler dev --remote --no-x-tail-logs, but in future it will not be possible to revert.
The impact of this will be that logs that were previously available via devtools will now be provided directly to the Wrangler console and it will no longer be possible to interact with the remote Worker via the devtools console.
Node modules punycode, trace_events, cluster, wasi, and domains will be used when enabled
via a compatibility flag or by default when the compatibility date is greater or equal to 2025-12-04.
Generalize the autoconfig wording so that when it doesn't specifically mention "deployment" (since it can be run via wrangler setup or the autoconfig programmatic API)
Running the experimental autoconfig logic through wrangler setup and wrangler deploy --x-autoconfig on a static project results in absolute paths being used. This is incorrect, especially when such paths are being included in the generated wrangler.jsonc. The changes here fix the autoconfig logic to use paths relative to the project's root instead.
For example given a project located in /Users/usr/projects/sites/my-static-site, before:
#114841cfae2d Thanks @edmundhung! - Explicitly close FileHandle in wrangler d1 execute to support Node 25
#113831d685cb Thanks @dario-piotrowicz! - Fix: ensure that when a remote proxy session creation fails a hard error is surfaced to the user (both in wrangler dev and in the programmatic API).
When using remote bindings, either with wrangler dev or via startRemoteProxySession/maybeStartOrUpdateRemoteProxySession the remote proxy session necessary to connect to the remote resources can fail to be created, this might happen if for example you try to set a binding with some invalid values such as:
MY_R2: {type: "r2_bucket",bucket_name: "non-existent",// No bucket called "non-existent" existsremote: true,},
Before this could go undetected and cause unwanted behaviors such as requests handling hanging indefinitely, now wrangler will instead crash (or throw a hard error ion the programmatic API), clearly indicating that something went wrong during the remote session's creation.
#11366edf896d Thanks @ascorbic! - Use correctly-formatted names when displaying detected framework details
Update the signature of the configure function of autoconfig frameworks (AutoconfigDetails#Framework), before they would return a RawConfig object to use to update the project's wrangler config file, now they return an object that includes the RawConfig and that can potentially also hold additional data relevant to the configuration.
This change enables users to select the environment for commands such as CLOUDFLARE_ENV=prod wrangler versions upload. The --env command line argument takes precedence.
The CLOUDFLARE_ENV environment variable is mostly used with the @cloudflare/vite-plugin to select the environment for building the Worker to be deployed. This build also generates a "redirected deploy config" that is flattened to on
Configuration
📅 Schedule: Branch creation - "" in timezone America/New_York, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ 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.
If you want to rebase/retry this PR, check this box
Next steps: Take a moment to review the security alert
above. Review the linked package source code to understand the potential
risk. Ensure the package is not malicious before proceeding. If you're
unsure how to proceed, reach out to your security team or ask the Socket
team for help at support@socket.dev.
Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.
Mark the package as acceptable risk. To ignore this alert only
in this pull request, reply with the comment
@SocketSecurity ignore npm/vite@7.1.5. You can
also ignore all packages with @SocketSecurity ignore-all.
To ignore an alert for all future pull requests, use Socket's Dashboard to
change the triage state of this alert.
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
dependenciesUpgrade or downgrade of project dependencies.
0 participants
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.33.0→4.59.1GitHub Vulnerability Alerts
CVE-2026-0933
Summary
A command injection vulnerability (CWE-78) has been found to exist in the
wrangler pages deploycommand. The issue occurs because the--commit-hashparameter is passed directly to a shell command without proper validation or sanitization, allowing an attacker with control of--commit-hashto execute arbitrary commands on the system running Wrangler.Root cause
The
commitHashvariable, derived from user input via the--commit-hashCLI argument, is interpolated directly into a shell command using template literals (e.g.,execSync(`git show -s --format=%B ${commitHash}`)). Shell metacharacters are interpreted by the shell, enabling command execution.Impact
This vulnerability is generally hard to exploit, as it requires
--commit-hashto be attacker controlled. The vulnerability primarily affects CI/CD environments wherewrangler pages deployis used in automated pipelines and the--commit-hashparameter is populated from external, potentially untrusted sources. An attacker could exploit this to:Mitigation
Credits
Disclosed responsibly by kny4hacker.
Release Notes
cloudflare/workers-sdk (wrangler)
v4.59.1Compare Source
Patch Changes
#11889
99b1f32Thanks @emily-shen! - Use argument array when executing git commands withwrangler pages deployPass user provided values from
--commit-hashsafely to underlying git command.v4.59.0Compare Source
Minor Changes
#11852
ad65efaThanks @NuroDev! - Add--checkflag towrangler typescommandThe new
--checkflag allows you to verify that your generated types file is up-to-date without regenerating it. This is useful for CI/CD pipelines, pre-commit hooks, or any scenario where you want to ensure types have been committed after configuration changes.When types are up-to-date, the command exits with code 0:
When types are out-of-date, the command exits with code 1:
$ wrangler types --check ✘ [ERROR] Types at worker-configuration.d.ts are out of date. Run `wrangler types` to regenerate.You can also use it with a custom output path:
#11529
43d5363Thanks @matthewdavidrodgers! - Add ability to enable higher asset count limits for Pages deploymentsWrangler can now read asset count limits from JWT claims during Pages deployments,
allowing users to be enabled for higher limits (up to 100,000 assets) on a per-account
basis. The default limit remains at 20,000 assets.
#11755
0f8d69dThanks @nikitassharma! - Users can now specifyconstraints.tiersfor their container applications.tieris deprecated in favor oftiers.If left unset, we will default to
tiers: [1, 2].Note that
constraintsis an experimental feature.Patch Changes
#11820
b0e54b2Thanks @MattieTK! - Add AI agent detection to analytics eventsWrangler now detects when commands are executed by AI coding agents (such as Claude Code, Cursor, GitHub Copilot, etc.) using the
am-i-vibinglibrary. This information is included as anagentproperty in all analytics events, helping Cloudflare understand how developers interact with Wrangler through AI assistants.The
agentproperty will contain the agent ID (e.g.,"claude-code","cursor-agent") when detected, ornullwhen running outside an agentic environment.#11494
ed60c4fThanks @jalmonter! - Fix scheduled trigger warning showingundefinedportWhen running
wrangler devwith a worker that has cron triggers, the warning message displayed an invalid URL likecurl "http://localhost:undefined/cdn-cgi/handler/scheduled"because the port wasn't yet determined when the warning was logged.Moved the warning to after the proxy server is fully ready, where the actual public URL and port are known.
#11831
faa5753Thanks @dependabot! - chore: update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#11844
e574ef3Thanks @dependabot! - chore: update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#11872
b6148edThanks @dependabot! - chore: update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#11843
ab3859cThanks @dario-piotrowicz! - Update the Wrangler autoconfig logic to work with the latest version of WakuThe latest version of Waku (
0.12.5-1.0.0-alpha.1-0) requires asrc/waku.server.tsxfile instead of asrc/server-entry.tsxone, so the Wrangler autoconfig logic (the logic being run as part ofwrangler setupandwrangler deploy --x-autoconfigthat configures a project to be deployable on Cloudflare) has been updated accordingly.Also the way the worker needs to handle static assets has been updated as recommended from the Waku team.
#11848
0eb973dThanks @petebacondarwin! - Fix incorrect warning about multiple environments when using redirected configPreviously, when using a redirected config (via
configPathin another config file) that originated from a config with multiple environments, wrangler would incorrectly warn about missing environment specification. This fix ensures the warning is only shown when the actual config being used has multiple environments defined, not when the original config did.Updated dependencies [
ed60c4f,5c59217,faa5753,e574ef3,b6148ed,beb96af,5c59217,fc96e5f]:v4.58.0Compare Source
Minor Changes
#11728
7d63fa5Thanks @NuroDev! - Add command categories towranglerhelp menuThe help output now groups commands by product category (Account, Compute & AI, Storage & Databases, Networking & Security) to match the Cloudflare dashboard organization:
This improves discoverability by organizing the 20+ wrangler commands into logical groups.
Patch Changes
#11822
97e67b9Thanks @dependabot! - chore: update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
Updated dependencies [
97e67b9]:v4.57.0Compare Source
Minor Changes
#11682
b993d95Thanks @ascorbic! - Addwrangler auth tokencommand to retrieve your current authentication credentials.You can now retrieve your authentication token for use with other tools and scripts:
The command returns whichever authentication method is currently configured:
wrangler login(automatically refreshed if expired)CLOUDFLARE_API_TOKENenvironment variableUse
--jsonto get structured output including the token type, which also supports API key/email authentication:This is similar to
gh auth tokenin the GitHub CLI.#11702
f612b46Thanks @gpanders! - Add support for trusted_user_ca_keys in WranglerYou can now configure SSH trusted user CA keys for containers. Add the following to your wrangler.toml:
This allows you to specify CA public keys that can be used to verify SSH user certificates.
#11437
9e360f6Thanks @ichernetsky-cf! - Drop deprecated containersobservability.loggingfield#11616
fc95831Thanks @NuroDev! - Add type generation support towrangler devYou can now have your worker configuration types be automatically generated when the local Wrangler development server starts.
To use it you can either:
--typesflag when runningwrangler dev.dev.generate_typesboolean property.{ "$schema": "node_modules/wrangler/config-schema.json", "name": "example", "main": "src/index.ts", "compatibility_date": "2025-12-12", "dev": { "generate_types": true } }#11524
b0dbf1aThanks @penalosa! - Add hidden CLI flags towrangler setupfor suppressing outputTwo new hidden flags have been added to
wrangler setup:--no-completion-message: Suppresses the deployment details message after setup completes--no-install-wrangler: Skips Wrangler installation during project setup#11777
69979a3Thanks @MattieTK! - Add analytics properties to secret commands for better usage insightsSecret commands (
wrangler secret put,wrangler secret bulk, and their Pages/versions equivalents) now include additional analytics properties to help understand how secrets are being managed:secretOperation: Whether this is a "single" or "bulk" secret operationsecretSource: How the secret was provided ("interactive", "stdin", or "file")secretFormat: For bulk operations, the format used ("json" or "dotenv")hasEnvironment: Whether an environment was specifiedThese properties help improve the developer experience by understanding common usage patterns. No sensitive information (secret names, values, or counts) is tracked.
#11738
c54f8daThanks @jamesopstad! - Add defaultTextmodule rule for.sqlfiles.This enables importing
.sqlfiles directly in Wrangler and the Cloudflare Vite plugin without extra configuration.#11692
df1f9c9Thanks @dario-piotrowicz! - Support Waku in autoconfig#11549
d059f69Thanks @dario-piotrowicz! - Support Vike in autoconfigPatch Changes
#11683
02fbd22Thanks @ascorbic! - Display a warning when authentication errors occur and theaccount_idin your Wrangler configuration does not match any of your authenticated accounts. This helps identify configuration issues where you may have the wrong account ID set in yourwrangler.tomlorwrangler.jsoncfile.#11704
77078efThanks @dario-piotrowicz! - Fix autoconfig handling of Next.js apps with CJS config files and incompatible Next.js versionsPreviously,
wrangler setupandwrangler deploy --x-autoconfigwould fail when working with Next.js applications that use CommonJS config files (next.config.cjs) or have versions of Next.js that don't match the required peer dependencies. The autoconfig process now uses dynamic imports and forced installation to handle these scenarios gracefully.#11796
2510723Thanks @dario-piotrowicz! -wrangler deploydelegates toopennextjs-cloudflare deployonly when the--x-autoconfigflag is usedThe
wrangler deploycommand has been updated to delegate to theopennextjs-cloudflare deploycommand when run in an open-next project. Once this behavior had been introduced it caused a few issues. So it's been decided to enable it for the time being only when the--x-autoconfigflag is set (since this behavior, although generally valid, is only strictly necessary for thewrangler deploy's autoconfig flow).#11764
9f6dd71Thanks @terakoya76! - Fix R2 Data Catalog snapshot-expiration API field namesThe
wrangler r2 bucket catalog snapshot-expiration enablecommand was sending incorrect field namesto the Cloudflare API, resulting in a 422 Unprocessable Entity error. This fix updates the API request
body to use the correct field names:
olderThanDays->max_snapshot_age(as duration string, e.g., "30d")retainLast->min_snapshots_to_keepThe CLI options (
--older-than-daysand--retain-last) remain unchanged.#11651
d123ad0Thanks @dario-piotrowicz! - Surface a more helpful error message for TOML Date, Date-Time, and Time values invarsTOML parses unquoted date/time values like
DATE = 2024-01-01as objects. Previously this would cause an unhelpful error message further down the stack. Now wrangler surfaces a more helpful error message earlier, telling you to quote the value as a string, e.g.DATE = "2024-01-01".#11711
5121b23Thanks @southpolesteve! - Show an error when D1 migration commands are run without a configuration filePreviously, running
wrangler d1 migrations apply,wrangler d1 migrations list, orwrangler d1 migrations createin a directory without a Wrangler configuration file would silently exit with no feedback. Now these commands display a clear error message:"No configuration file found. Create a wrangler.jsonc file to define your D1 database."
#11710
82e7e90Thanks @dario-piotrowicz! - Fix arguments passed towrangler deploynot being forwarded toopennextjs-cloudflare deploywrangler deployrun in an open-next project delegates toopennextjs-cloudflare deploy, as part of this all the arguments passed towrangler deployneed be forwarded toopennextjs-cloudflare deploy, before the arguments would be lost, now they will be successfully forwarded (for examplewrangler deploy --keep-varswill callopennextjs-cloudflare deploy --keep-vars)#10750
4688f59Thanks @jacoblearned! - Notify user on local dev server reload.When running
wrangler dev, the local server suppresses Miniflare's reload messages to prevent duplicate log entries from the proxy and user workers. This update adds a reload complete message so users know their changes were applied, instead of only seeing "Reloading local server...".#11673
b827893Thanks @MattieTK! - Breaks out version numbers into sortable number types for analytics loggingUpdated dependencies [
65d1850,1615fce,b2769bf,554a4df,8eede3f,6a05b1c,62fd118,a7e9f80,eac5cf7]:v4.56.0Compare Source
Minor Changes
#11196
171cfd9Thanks @emily-shen! - For containers being created in a FedRAMP high environment, registry credentials are encrypted by the container platform.Update wrangler to correctly send a request to configure a registry for FedRAMP containers.
#11646
472cf72Thanks @vovacf201! - feat: add R2 Data Catalog snapshot expiration commandsAdds new commands to manage automatic snapshot expiration for R2 Data Catalog tables:
wrangler r2 bucket catalog snapshot-expiration enable- Enable automatic snapshot expirationwrangler r2 bucket catalog snapshot-expiration disable- Disable automatic snapshot expirationSnapshot expiration helps manage storage costs by automatically removing old table snapshots while keeping a minimum number of recent snapshots for recovery purposes.
Example usage:
Patch Changes
#11649
428ae9eThanks @ascorbic! - fix: respect TypeScript path aliases when resolving non-JS modules with module rulesWhen importing non-JavaScript files (like
.graphql,.txt, etc.) using TypeScript path aliases defined intsconfig.json, Wrangler's module-collection plugin now correctly resolves these imports. Previously, path aliases were only respected for JavaScript/TypeScript files, causing imports likeimport schema from '~lib/schema.graphql'to fail when using module rules.#11647
c0e249eThanks @dario-piotrowicz! - The auto-configuration logic present inwrangler setupandwrangler deploy --x-autoconfigcannot reliably handle Hono projects, so in these cases make sure to properly error saying that automatically configuring such projects is not supported.#11694
3853200Thanks @dario-piotrowicz! - fix: improve the open-next detection thatwrangler deployperforms to eliminate false positives for non open-next projectsUpdated dependencies [
ae1ad22,737c0f4]:v4.55.0Compare Source
Minor Changes
#11301
6c590a0Thanks @dario-piotrowicz! - Makewrangler deployrunopennextjs-cloudflare deploywhen executed in an open-next project#11045
12a63efThanks @edmundhung! - Add an internalunstable_printBindingsAPI for vite plugin integration#11590
7d8d4a6Thanks @pombosilva! - Add Workflows send-event to wrangler commands.#11301
6c590a0Thanks @dario-piotrowicz! - Support Next.js (via OpenNext) projects in autoconfigPatch Changes
#11615
ed42010Thanks @elithrar! - Add helpful warning when SSL certificate errors occur due to corporate proxies or VPNs intercepting HTTPS traffic. When errors like "self-signed certificate in certificate chain" are detected, wrangler now displays guidance about installing missing system roots from your corporate proxy vendor.#11641
6b28de1Thanks @petebacondarwin! - update command status text and formatting#11578
4201472Thanks @gpanders! - Fixup UX papercuts in containers SSH#11550
95d81e1Thanks @hiendv! - Fix "TypeError: Body is unusable: Body has already been read" when failing to exchange oauth code because of doubleresponse.text().Updated dependencies [
5d085fb,b75b710,1e9be12]:v4.54.0Compare Source
Minor Changes
#11512
c15e99eThanks @emily-shen! - Enable usingctx.exportswith containersYou can now use containers with Durable Objects that are accessed via
ctx.exports.Now your config file can look something like this:
Note that when using
ctx.exports, where you previously accessed a Durable Object via something likeenv.DO, you should now access withctx.exports.MyDOClassname.Refer to the docs for more information on using
ctx.exports.#11508
b17797cThanks @dario-piotrowicz! - Wrangler will no longer try to add additional configuration to projects using@cloudflare/vite-pluginwhen deploying or runningwrangler setup#11508
b17797cThanks @dario-piotrowicz! - When a Vite project is detected, install@cloudflare/vite-plugin#11576
bb47e20Thanks @dario-piotrowicz! - Support Analog projects in autoconfig#10582
991760dThanks @flakey5! - Addcontainers sshcommandPatch Changes
#11467
235d325Thanks @edmundhung! - fix: prevent reporting SQLite error fromwrangler d1 executeto Sentry#11414
41103f5Thanks @petebacondarwin! - add extra logging to user log-in flow for diagnosing failed login requests#11559
ea6fbecThanks @nikitassharma! - Remove image validation for containers on wrangler deploy.Internal customers are able to use additional image registries and will run into failures with this validation. Image registry validation will now be handled by the API.
Updated dependencies [
31c162a,bd5f087,c6dd86f]:v4.53.0Compare Source
Minor Changes
#11500
af54c63Thanks @dario-piotrowicz! - Add newautoconfig_summaryfield to the deploy output entryThis change augments
wrangler deployoutput being printed toWRANGLER_OUTPUT_FILE_DIRECTORYorWRANGLER_OUTPUT_FILE_PATHto also include a newautoconfig_summaryfield containing the possible summary details for the autoconfig process (the field isundefinedif autoconfig didn't run).Note: the field is experimental and could change while autoconfig is not GA
#11477
9988cc9Thanks @ascorbic! - Support Nuxt in autoconfig#11472
ce295bfThanks @dario-piotrowicz! - Support Qwik projects in autoconfig#10937
9514c9aThanks @ReppCodes! - Add support for "targeted" placement mode with region, host, and hostname fieldsThis change adds a new mode to
placementconfiguration. You can specify one of the following fields to target specific external resources for Worker placement:region: Specify a region identifier (e.g., "aws:us-east-1") to target a region from another cloud service providerhost: Specify a host with (required) port (e.g., "example.com:8123") to target a TCP servicehostname: Specify a hostname (e.g., "example.com") to target an HTTP resourceThese fields are mutually exclusive - only one can be specified at a time.
Example configuration:
#11498
ac861f8Thanks @penalosa! - Add React Router support in autoconfig#11506
79d30d4Thanks @vicb! - Set the target JS version to ES2024Patch Changes
#11393
45480b1Thanks @alsuren! - improved --help text for wrangler d1 subcommands#11523
94c67e8Thanks @jamesopstad! - fix: types from @cloudflare/workers-utils not being exported correctly from Wrangler#11483
f550b62Thanks @edmundhung! - stop runningnpm installwith--legacy-peer-depsflag when setting up a projectUpdated dependencies [
819e287,56e78c8,0aa959a]:v4.52.1Compare Source
Patch Changes
#11504
7e80340Thanks @dario-piotrowicz! - Fixwrangler deployfailing for new workers containing environment variables or bindingsUpdated dependencies [
59534ba]:v4.52.0Compare Source
Minor Changes
#11416
abe49d8Thanks @dario-piotrowicz! - Remove thewrangler deploy's--x-remote-diff-checkexperimental flagThe remote diffing feature has been enabled by default for a while and its functionality is stable, as a result the experimental flag (only available for option-out of the feature right now) has been removed.
#11408
f29e699Thanks @ascorbic! - Export unstable helpers useful for generating wrangler config#11389
2342d2fThanks @dario-piotrowicz! - Improve thewrangler deployflow to also check for potential overrides of secrets.Now when you run
wrangler deployWrangler will check the remote secrets for your workers for conflicts with the names of the bindings you're about to deploy. If there are conflicts, Wrangler will warn you and ask you for your permission before proceeding.#11375
9a1de61Thanks @penalosa! - Support TanStack Start in autoconfig#11360
6b38532Thanks @emily-shen! - Containers: Allow users to directly authenticate external image registries in local devPreviously, we always queried the API for stored registry credentials and used those to pull images. This means that if you are using an external registry (ECR, dockerhub) then you have to configure registry credentials remotely before running local dev.
Now you can directly authenticate with your external registry provider (using
docker loginetc.), and Wrangler or Vite will be able to pull the image specified in thecontainers.imagefield in your config file.The Cloudflare-managed registry (registry.cloudflare.com) currently still does not work with the Vite plugin.
#11009
e4ddbc2Thanks @dario-piotrowicz! - Allow users to provide anaccount_idas part of theWorkerConfigObjectthey pass tomaybeStartOrUpdateRemoteProxySession#11478
2aec2b4Thanks @dario-piotrowicz! - Support SolidStart in autoconfig#11330
5a873bbThanks @dario-piotrowicz! - Support Angular projects in autoconfig#11449
e7b690bThanks @penalosa! - Delegate generation of HTTPS certificates to Miniflare#11448
2b4813bThanks @edmundhung! - Bumpsesbuildversion to 0.27.0#11335
c47ad11Thanks @dario-piotrowicz! - Support internal-only undocumentedcross_account_grantservice binding property#11346
a977701Thanks @penalosa! - We're soon going to make backend changes that mean thatwrangler dev --remotesessions will no longer have an associated inspector connection. In advance of these backend changes, we've enabled a newwrangler tail-based logging strategy forwrangler dev --remote. For now, you can revert to the previous logging strategy withwrangler dev --remote --no-x-tail-logs, but in future it will not be possible to revert.The impact of this will be that logs that were previously available via devtools will now be provided directly to the Wrangler console and it will no longer be possible to interact with the remote Worker via the devtools console.
Patch Changes
#11397
b154de2Thanks @vicb! - Use more workerd native modulesNode modules
punycode,trace_events,cluster,wasi, anddomainswill be used when enabledvia a compatibility flag or by default when the compatibility date is greater or equal to 2025-12-04.
#11452
76f0540Thanks @penalosa! - Remove uses ofeval()from the Wrangler bundle#11284
695fa25Thanks @dom96! - Removes duplicate module warnings when vendoring Python packages#11249
504e258Thanks @dario-piotrowicz! - fix: Generalize autoconfig wordingGeneralize the autoconfig wording so that when it doesn't specifically mention "deployment" (since it can be run via
wrangler setupor the autoconfig programmatic API)#11455
d25f7e2Thanks @dario-piotrowicz! - Fix autoconfig using absolute paths for static projectsRunning the experimental autoconfig logic through
wrangler setupandwrangler deploy --x-autoconfigon a static project results in absolute paths being used. This is incorrect, especially when such paths are being included in the generated wrangler.jsonc. The changes here fix the autoconfig logic to use paths relative to the project's root instead.For example given a project located in
/Users/usr/projects/sites/my-static-site, before:and after:
#11484
1cfae2dThanks @edmundhung! - Explicitly close FileHandle inwrangler d1 executeto support Node 25#11383
1d685cbThanks @dario-piotrowicz! - Fix: ensure that when a remote proxy session creation fails a hard error is surfaced to the user (both inwrangler devand in the programmatic API).When using remote bindings, either with
wrangler devor viastartRemoteProxySession/maybeStartOrUpdateRemoteProxySessionthe remote proxy session necessary to connect to the remote resources can fail to be created, this might happen if for example you try to set a binding with some invalid values such as:Before this could go undetected and cause unwanted behaviors such as requests handling hanging indefinitely, now wrangler will instead crash (or throw a hard error ion the programmatic API), clearly indicating that something went wrong during the remote session's creation.
#11366
edf896dThanks @ascorbic! - Use correctly-formatted names when displaying detected framework details#11461
9eaa9e2Thanks @dario-piotrowicz! - Update the structure of theconfiguremethod of autoconfig frameworksUpdate the signature of the
configurefunction of autoconfig frameworks (AutoconfigDetails#Framework), before they would return aRawConfigobject to use to update the project's wrangler config file, now they return an object that includes theRawConfigand that can potentially also hold additional data relevant to the configuration.Updated dependencies [
2b4813b,b154de2,5ee3780,6e63b57,71ab562,5e937c1]:v4.51.0Compare Source
Minor Changes
#11345
d524e55Thanks @penalosa! - Enable experimental support for autoconfig-powered Astro projects#11228
43903a3Thanks @petebacondarwin! - SupportCLOUDFLARE_ENVenvironment variable for selecting the active environmentThis change enables users to select the environment for commands such as
CLOUDFLARE_ENV=prod wrangler versions upload. The--envcommand line argument takes precedence.The
CLOUDFLARE_ENVenvironment variable is mostly used with the@cloudflare/vite-pluginto select the environment for building the Worker to be deployed. This build also generates a "redirected deploy config" that is flattened to onConfiguration
📅 Schedule: Branch creation - "" in timezone America/New_York, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ 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.