Skip to content

chore(deps): update dependency wrangler to v4 - #555

Open
renovate[bot] wants to merge 1 commit into
trunkfrom
renovate/wrangler-4.x
Open

chore(deps): update dependency wrangler to v4#555
renovate[bot] wants to merge 1 commit into
trunkfrom
renovate/wrangler-4.x

Conversation

@renovate

@renovate renovate Bot commented Mar 13, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
wrangler (source) 3.114.174.118.0 age confidence

Release Notes

cloudflare/workers-sdk (wrangler)

v4.118.0

Compare Source

Minor Changes
  • #​14057 cc63aae Thanks @​matingathani! - Add --json flag to wrangler containers info for consistent JSON output with sibling commands list and instances

  • #​14944 a249591 Thanks @​nickpatt! - Enable local observability capture by default in dev

    wrangler dev and 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 behind X_LOCAL_OBSERVABILITY=true. Set X_LOCAL_OBSERVABILITY=false to opt out (for example if the extra per-worker collector/streaming-tail services cause trouble in a multi-process dev-registry setup).

  • #​14919 e0bbf55 Thanks @​avenceslau! - Add additional triggers to Workflows

    Workers 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 f92d1fc Thanks @​petebacondarwin! - Fix jsx_fragment being ignored when wrangler dev runs a custom build

    If your project uses a custom build and sets both jsx_factory and jsx_fragment, wrangler dev used your jsx_factory value for JSX fragments as well, so fragments compiled incorrectly. Your jsx_fragment value is now used.

  • #​14936 f92d1fc Thanks @​petebacondarwin! - Stop wrangler dev starting new work after you stop it or it reloads

    Stopping 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 dev leaves nothing running behind it.

  • #​14936 f92d1fc Thanks @​petebacondarwin! - Stop wrangler dev from running custom builds concurrently

    When several watched files changed at once — for example during a git pull or a "save all" — wrangler dev started 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 cec9d88 Thanks @​edmundhung! - Report a clear error for account IDs that can't be used in a Cloudflare API request

    Account 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 ByteString error that gave no hint about which setting was at fault. Account IDs read from CLOUDFLARE_ACCOUNT_ID and from the account_id configuration 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.0

Compare Source

Minor Changes
  • #​14586 5a56dda Thanks @​emily-shen! - Remove containerEngine from the worker options returned by unstable_getMiniflareWorkerOptions

    unstable_getMiniflareWorkerOptions no longer includes containerEngine in the returned workerOptions, 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 set containerEngine at the top level instead.

Patch Changes
  • #​14586 5a56dda Thanks @​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 dev and 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/scheduled is 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.0

Compare Source

Minor Changes
  • #​14907 beec0fb Thanks @​NuroDev! - Avoid Worker and workers.dev naming prompts in agent-driven deploys

    Wrangler 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 b21eac2 Thanks @​jamesopstad! - The experimental build output directory now includes the Worker's configuration at .cloudflare/output/v0/workers/default/config.json instead of .cloudflare/output/v0/workers/<worker-name>/worker.config.json

  • #​14893 bb09f1b Thanks @​apeacock1991! - Graduate wrangler check startup from alpha and show bundle size and a local timing summary

    The 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 01d7020 Thanks @​edmundhung! - Add support for dispatching email handlers with createTestHarness

    You can now call server.getWorker().email({ from, to, raw }) to dispatch directly to a Worker's email() handler and inspect its outcome, rejection reason, forwarded messages, and replies.

    const result = await server.getWorker().email({
      from: "[email protected]",
      to: "[email protected]",
      raw: [
        "From: Sender <[email protected]>",
        "To: Inbox <[email protected]>",
        "Message-ID: <[email protected]>",
        "Subject: Test email",
        "",
        "Hello from the test harness",
      ].join("\r\n"),
    });
    
    expect(result).toMatchObject({
      outcome: "ok",
      forwards: [{ recipient: "[email protected]" }],
      replies: [
        {
          sender: "[email protected]",
          raw: expect.stringContaining("Thanks for your email"),
        },
      ],
    });
Patch Changes
  • #​14929 48f0c6c Thanks @​dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    Dependency From To
    @​cloudflare/workers-types ^5.20260722.1 ^5.20260730.1
    workerd 1.20260722.1 1.20260730.1
  • #​14838 8049ca4 Thanks @​TheSaiEaranti! - Fix ctrl+c not being able to interrupt wrangler while waiting for Cloudflare Access authorization

    When 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. cloudflared is 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-pending cloudflared immediately, with process exit as a last-resort cleanup.

  • #​14871 1394867 Thanks @​nickpatt! - Include the local observability query endpoint in the agent-facing Local Explorer hint

    The hint wrangler dev prints for AI-agent sessions now lists POST /cdn-cgi/explorer/api/local/observability/query, so agents can discover the read-only SQL endpoint for captured request traces and console logs (the spans and logs tables) alongside the existing binding and storage routes.

  • #​14918 cc54478 Thanks @​nickpatt! - Improve the agent-facing Local Explorer hint for the observability query endpoint

    When a wrangler dev session is detected as running inside an AI agent, the hint for POST /local/observability/query now explains that the endpoint takes a read-only SQL query (SELECT/WITH only) over the captured spans and logs tables, notes that attributes is JSON (read via json(attributes)), and includes a copy-pasteable curl example. 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 e31ab0f Thanks @​ericclemmons! - Fix wrangler triggers deploy to use Vite-generated redirected configuration

    The command now reads .wrangler/deploy/config.json, matching wrangler deploy and wrangler versions upload, so generated Worker names and trigger settings are applied.

  • Updated dependencies [01d7020, 48f0c6c, d7f38c3, 5c25cfe, 1f61001]:

    • miniflare@​4.20260730.0

v4.115.0

Compare Source

Minor Changes
  • #​14807 4dfb96e Thanks @​oOPa! - Add hidden --jurisdiction option to wrangler kv namespace create for internal testing

    This option creates a KV namespace within a specific jurisdiction (for example us, eu, or fedramp), backing it with jurisdiction-scoped storage. It is experimental and currently gated to allow-listed accounts, so it is hidden from --help until the feature is generally available.

  • #​14280 465c0fb Thanks @​tahmid-23! - Add experimental local_dev.experimental_s3_credentials to r2_buckets config

    When 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's bucket_name, or the binding name if bucket_name is 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 552bcfc Thanks @​jasoncabot! - Respect and surface the Retry-After header on Cloudflare API responses

    Previously, 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 (only 5xx errors were, with a fixed linear backoff).

    Now:

    • 429 Too Many Requests responses are automatically retried, alongside the existing 5xx retry behaviour.
    • If a retried response includes a Retry-After header, 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 surfaced Retry-After value lets the caller schedule its own retry.
    • If a retryable error is ultimately surfaced to the user (e.g. because retries were exhausted), the error message includes a note with the Retry-After duration, and the command-failed entry written to the Wrangler output file (WRANGLER_OUTPUT_FILE_PATH/WRANGLER_OUTPUT_FILE_DIRECTORY) gains a retry_after_ms field. This lets scripts and CI/CD pipelines calling Wrangler repeatedly (for example, wrangler versions upload on every commit) read the wait duration directly instead of regex-parsing stderr.

    APIError.isRetryable() is unchanged (still 5xx only); retryOnAPIFailure() separately retries 429s. retryAfterMs, when present, is honoured for any retried error, not just 429s.

    retryAfterMs is also now populated on APIErrors raised from direct R2 object requests, the Browser Rendering API, and errors surfaced from commands using the official cloudflare SDK client.

  • #​14712 6e0bf6e Thanks @​mack-erel! - Support connect() on remote VPC Network and VPC Service bindings in local development

    Remote 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 with Incoming 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 773ead4 Thanks @​DiogoSantoss! - Color Email Routing plan change markers

    Wrangler 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 773ead4 Thanks @​DiogoSantoss! - Apply Email Routing changes across independent zones concurrently

    Wrangler 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 09b8a44 Thanks @​chinesepowered! - Fix wrangler cloudchamber curl mangling header values that contain a colon

    Header values were split on every colon and only the segment between the first and second was sent, so --header location:https://example.com/x arrived as https. Headers are now split on the first colon only. A header that is not in the documented --header <name>:<value> form previously threw an unhandled TypeError, and now reports a clear error.

  • #​14806 e8b3a9d Thanks @​akim136! - Handle and explain authentication failures from remote bindings during local development

    Wrangler 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 b737676 Thanks @​emily-shen! - Speed up old debug log cleanup by reading each log file's date from its filename instead of stat-ing every file

    Wrangler periodically deletes debug log files older than 30 days from its logs directory. Previously it made a filesystem stat call 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]:

    • miniflare@​4.20260722.1

v4.114.0

Compare Source

Minor Changes
  • #​14633 3203b5d Thanks @​nickpatt! - Add local-dev observability

    wrangler dev and the Vite plugin now capture a trace for every local Worker invocation - spans, logs, and console.* output, including requests that cross worker or Durable Object boundaries.

    You can explore this data two ways:

    • A new Observability tab in the Local Explorer, with a Traces view (recent invocations, an inline timeline waterfall, and filters) and an Events view.
    • A read-only SQL endpoint at /cdn-cgi/explorer/api/local/observability/query, discoverable via the Local Explorer's OpenAPI document, so coding agents and tools can query the same spans and logs tables.

    While this is in testing it's off by default; set X_LOCAL_OBSERVABILITY=true to turn it on. It will be on by default in the public release.

Patch Changes
  • #​14373 246ce92 Thanks @​Jacroney! - Improve the D1 database-limit error message

    When 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 create and to the D1 database that is created during resource provisioning on deploy.

  • #​14796 c38a2c3 Thanks @​dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    Dependency From To
    @​cloudflare/workers-types ^5.20260721.1 ^5.20260722.1
    workerd 1.20260721.1 1.20260722.1
  • #​14788 8416b33 Thanks @​chinesepowered! - Fix grammar in the container image-too-large error

    The 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 4683ff8 Thanks @​jamesopstad! - Ignore the removed legacy_env field when reading a redirected configuration

    Older versions of tools such as the Vite plugin can generate a redirected configuration (.wrangler/deploy/config.json) that still includes the removed legacy_env field. Since these files are tool-generated, users could not easily remove the field themselves, and Wrangler would error out. Wrangler now silently strips legacy_env from redirected configurations. User-authored configurations still report an error so that the field can be removed.

  • #​14593 02232f3 Thanks @​spk-ai! - Fix dev proxy silently hanging or returning a misleading 503 on network errors for non-root-path requests

    During wrangler dev, a transient network error on any request path other than / could be misclassified as the worker being reloaded, even when it wasn't: GET/HEAD requests would silently hang (with nothing logged) until the client timed out, and other methods would receive a misleading Your worker restarted mid-request 503. Such errors are now reported and surfaced immediately when the worker has not actually changed.

  • #​14797 f8a8c2c Thanks @​roerohan! - Explain how to provision Flagship bindings if app_id missing in remote development

    Wrangler now reports that a Flagship binding without an app_id must first be created with wrangler flagship apps create.

  • Updated dependencies [c38a2c3, c079ba3, 95b026e, c4bacec, 3203b5d]:

    • miniflare@​4.20260722.0

v4.113.0

Compare Source

Minor Changes
  • #​14471 f03b108 Thanks @​DiogoSantoss! - Apply Email Routing addresses during Worker trigger deployment

    Worker trigger deployment now reconciles the Worker's Email Routing rules with the top-level addresses config. This runs for wrangler deploy, wrangler triggers deploy, and clients of @cloudflare/deploy-helpers. After the Worker uploads, or when wrangler triggers deploy runs after a version promotion, the deploy helper asks the Email Routing API for a plan, renders the changes grouped by zone (+ added, ~ updated, - deleted, ! conflict), prompts once for destructive changes in interactive mode, and applies accepted changes through the per-zone rule endpoints. Purely additive plans apply without a prompt, while non-interactive destructive plans fail without modifying rules.

  • #​14679 deae171 Thanks @​dario-piotrowicz! - Add exclude_packages option to dependencies_instrumentation configuration

    The dependencies_instrumentation config object now accepts an optional exclude_packages field — an array of package name patterns (with glob-style * wildcards) to exclude from the dependency metadata collected during deploy and version uploads.

    // wrangler.json
    {
      "dependencies_instrumentation": {
        "exclude_packages": ["@&#8203;internal/*", "secret-tool"]
      }
    }
  • #​14721 4e92e32 Thanks @​dmmulroy! - Support Artifacts sources when creating Queue event subscriptions

    wrangler queues subscription create now accepts the artifacts and artifacts.repo source types supported by the Cloudflare API.

  • #​13352 d1d6945 Thanks @​penalosa! - Expand automatic resource provisioning to Queue, Dispatch Namespace, and Flagship bindings

    Deployments can now omit the resource name or ID for these bindings. Wrangler will inherit the existing binding on subsequent deploys, create a deterministically named resource automatically, or offer existing resources during an interactive deploy with automatic creation disabled.

  • #​14688 a0c8bb1 Thanks @​NuroDev! - Print Local Explorer API details for headless agent-driven wrangler dev sessions

    When wrangler dev is started in a headless AI agent environment, Wrangler now prints the Local Explorer API URL and basic resource routes so agents can inspect local Workers and bindings without relying on the interactive UI.

  • #​14724 a50f73a Thanks @​jamesopstad! - Add a settings export to the experimental cloudflare.config.ts config

    Account-level settings (accountId, complianceRegion) now live in a dedicated, named settings export authored via defineSettings, rather than on the Worker config. A cloudflare.config.ts can export at most one settings object; the Worker itself is the default export.

    // cloudflare.config.ts
    import { defineSettings, defineWorker } from "wrangler/experimental-config";
    import * as entrypoint from "./src/index.ts" with { type: "cf-worker" };
    
    export const settings = defineSettings({
    	accountId: "<your-account-id>",
    });
    
    export default defineWorker({
    	name: "my-worker",
    	entrypoint,
    	compatibilityDate: "2026-05-18",
    });

    This is only used behind the experimental new-config path (wrangler --experimental-new-config and the @cloudflare/vite-plugin experimental.newConfig option).

  • #​14595 2b390d7 Thanks @​colinhacks! - Recognise nub as a package manager

    wrangler now detects nub — from its npm_config_user_agent and an installed nub binary — and autoconfig detects nub projects by their nub.lock, alongside npm, pnpm, yarn, and bun.

  • #​14742 34430b3 Thanks @​pombosilva! - Add support for redacting sensitive Workflows step output in local dev.

    Steps configured with sensitive: "output" now have their output redacted to [REDACTED] in step logs and step-output responses when running Workflows locally, matching production behavior. The real value is still passed to downstream steps, and step errors are never redacted.

Patch Changes
  • #​14715 42af66d Thanks @​dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    Dependency From To
    @​cloudflare/workers-types ^5.20260714.1 ^5.20260721.1
    workerd 1.20260714.1 1.20260721.1
  • #​14744 a0a091b Thanks @​penalosa! - Drop the "Experimental:" prefix from the resource provisioning header now that automatic provisioning is generally available. The deploy output now reads The following bindings need to be provisioned:.

  • #​14720 0df3d43 Thanks @​penalosa! - Fix remote binding previews for accounts without a workers.dev subdomain

    Wrangler now automatically registers a workers.dev subdomain when one is required to start a remote binding preview.

  • #​14773 d83a476 Thanks @​chinesepowered! - Fix stray characters in the Workers Sites asset-key-too-long error

    The error thrown when an asset path key exceeds the 512-character limit ended with a stray ", copy-paste artifact, so the message printed to users terminated with ...#kv-limits", and the trailing documentation URL was malformed. The message now ends cleanly at the URL.

  • #​14766 4815711 Thanks @​gianghungtien! - Report the Worker's error for HEAD requests instead of an internal JSON parse error

    A Worker that threw on a HEAD request (for example curl -I) logged SyntaxError: Unexpected end of JSON input from miniflare's internals rather than the actual error, and dispatchFetch() rejected with that same misleading error. workerd drops response bodies for HEAD requests, so the serialised error never reached the code that revives it.

    The error is now also carried in a header, which survives HEAD, so the original message and source-mapped stack are reported for every method. When no payload is available the reporting degrades to a plain error rather than surfacing a parse failure.

  • #​14448 c82d96b Thanks @​GregBrimble! - Use the new PATCH APIs for versioned secret commands

    Wrangler now updates versioned Worker secrets by patching the latest Worker version instead of downloading the latest version contents and uploading a full replacement version. This avoids reconstructing Worker configuration in Wrangler, which should reduce bugs when Workers use less common features. For example, this avoids regressions like the previous placement preservation bug fixed in #​13843.

  • #​14617 f75ae5d Thanks @​martijnwalraven! - Derive nodejsCompatMode from the effective compatibility inputs in unstable_startWorker()

    The CLI computes the node-compat mode from the effective compatibility date and flags (args.* ?? parsedConfig.*), but the programmatic path used input.build.nodejsCompatMode raw — leaving it unset meant a worker's nodejs_compat flag (from its config file or from input-level compatibilityFlags) was silently ignored, so bundling failed to resolve node builtins that wrangler dev handles. startWorker now derives the mode the same way when the caller does not provide one: input-level compatibilityDate/compatibilityFlags first, then the resolved config, with no-bundle taken from the resolved build.bundle semantics. Passing an explicit null still disables it.

  • Updated dependencies [42af66d, 4815711, 34430b3]:

    • miniflare@​4.20260721.0

v4.112.0

Compare Source

Minor Changes
  • #​14470 3de70df Thanks @​DiogoSantoss! - Add a top-level addresses field to Wrangler configuration for Email Routing

    You can now declare the inbound email addresses handled by your Worker directly in wrangler.json:

    {
      "name": "my-worker",
      "main": "src/index.ts",
      "compatibility_date": "2026-05-21",
      "addresses": ["[email protected]", "*@&#8203;example.com"]
    }
  • #​14706 cb6c3f9 Thanks @​edmundhung! - Add Durable Object storage access to createTestHarness()

    You can now execute SQL against a SQLite-backed Durable Object to seed or assert the storage state.

    const server = createTestHarness({
      workers: [{ configPath: "./wrangler.json" }],
    });
    await server.listen();
    
    const worker = server.getWorker();
    const storage = await worker.getDurableObjectStorage("COUNTER", {
      name: "user-123",
    });
    
    await worker.fetch("/counter/user-123");
    
    const rows = await storage.exec(
      "SELECT value FROM counters WHERE id = ?",
      "user-123"
    );
    expect(rows).toEqual([{ value: 1 }]);
  • #​14562 9f04a7e Thanks @​martijnwalraven! - Emit a typed runtimeError event on the unstable_startWorker DevEnv for uncaught Worker exceptions

    Uncaught Worker exceptions were only source-mapped and printed, so programmatic consumers had to scrape terminal output to observe them. The DevEnv now re-emits a RuntimeErrorEvent (like reloadComplete) carrying the exception text and source-mapped stack — fed from Miniflare's pretty-error seam via the new handleUncaughtError option for exceptions the runtime catches, and from the inspector for those it does not.

Patch Changes
  • #​14682 d39ae01 Thanks @​dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    Dependency From To
    @​cloudflare/workers-types ^5.20260710.1 ^5.20260714.1
    workerd 1.20260710.1 1.20260714.1
  • #​14725 c79504f Thanks @​edmundhung! - Support containers in createTestHarness()

    Workers configured with containers can now be tested using createTestHarness(). The harness builds configured images and makes container-backed Durable Objects available during integration tests.

  • #​14696 c7dbe1a Thanks @​martijnwalraven! - Type unstable_startWorker, DevEnv.startWorker, and ConfigController.set/patch against WranglerStartDevWorkerInput, so the wrangler-specific dev.structuredLogsHandler field the runtime already honors is expressible through the public API. Previously the public signatures took the base StartDevWorkerInput, and callers passing the handler needed a cast while internal callers (the test harness) routed the wider type around the signature.

  • #​14494 4e1a7a7 Thanks @​petebacondarwin! - Register a workers.dev subdomain before uploading a new Worker

    Deploying a Worker for the first time on an account that has no workers.dev subdomain failed with an opaque API error raised by the upload request itself (code 10063, "You need a workers.dev subdomain in order to proceed"). Wrangler now checks for a workers.dev subdomain before uploading a brand-new Worker that publishes to workers.dev and prompts you to register one, so you get a clear, actionable message instead of a cryptic API failure. The check is skipped for deploys that don't target workers.dev (routes-only deploys, or workers_dev: false) and for existing Workers, since their account already has a subdomain.

  • Updated dependencies [34e696d, d39ae01, 9f04a7e, 9f04a7e, cb30df3, cb6c3f9, 3f3afbb, e6fbc4e]:

    • miniflare@​4.20260714.0

v4.111.0

Compare Source

Minor Changes
  • #​14602 7692a61 Thanks @​edmundhung! - Add Durable Object eviction support to createTestHarness

    You can now gracefully evict a running Durable Object by class name or binding name to verify how it recovers after its instance is torn down:

    const worker = server.getWorker();
    await worker.evictDurableObject("Counter", { name: "user-123" });
  • #​14620 899c297 Thanks @​penalosa! - Remove support for service environments and the legacy_env configuration field

    Service environments have been removed. Wrangler now always deploys each environment as its own Worker named <name>-<environment>, which matches the behaviour of the previous default (legacy_env = true). The --legacy-env CLI flag has been removed, and the legacy_env configuration field is no longer supported — including it in your configuration file will now raise an error.

    Because legacy_env = true was already the default, removing the field will not change how your Worker is deployed. If you were relying on service environments (legacy_env = false), each environment will now be deployed as a standalone Worker instead of as an environment of a single Worker. See https://developers.cloudflare.com/workers/wrangler/environments/ for more information.

  • #​14652 317ce1f Thanks @​jamesopstad! - Append Workers runtime types to the generated types under --x-new-config, with a new dev.types.includeRuntime option

    When running wrangler dev --x-new-config, the runtime types generated from your compatibility date and flags are now appended to worker-configuration.d.ts, alongside the types inferred from cloudflare.config.ts. This is controlled by a new dev.types.includeRuntime option in wrangler.config.ts, which defaults to true.

    This applies to the experimental new config path only and does not change type generation for existing wrangler.jsonc/wrangler.toml projects.

Patch Changes
  • #​14627 ed33326 Thanks @​tpmmorris! - Add convenient logging for worker emails in the project directory. In addition to the system's temp directory, logs for emails sent by workers are also written to a local temp directory defined by the calling process, e.g for an simple text email sent via Wrangler this is .wrangler/tmp/email/<session>/email-text/<message-uuid>.txt (and related files) in the project root. Callers of Miniflare can control this location via the new defaultProjectTmpPath option, which Wrangler and Vite plugin now set automatically.

  • #​14642 018574b Thanks @​dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    Dependency From To
    @​cloudflare/workers-types ^5.20260708.1 ^5.20260710.1
    workerd 1.20260708.1 1.20260710.1
  • #​14588 eb99ab1 Thanks @​emily-shen! - fix: Respect auth profiles when using remote bindings in the Vite plugin

    Auth profiles (configured via wrangler auth create and wrangler auth activate) were previously being ignored when using remote bindings with the Vite plugin. This is now fixed.

    Note that the profile directory is resolved based on the Vite project root.

  • #​14658 cdf3148 Thanks @​ATKasem! - Fix wrangler dev corrupting external hostnames in proxied response headers

    When a Worker was run with routes configured, wrangler dev's proxy rewrote the host inside URL-valued headers (such as Location) using a boundary-less substring replace. Any host that merely contained the route host as a substring was corrupted — e.g. with an example.com route, a Location: https://books.example.com/read/ch01 header became https://books.127.0.0.1:8788/read/ch01, and https://myexample.com/path became https://my127.0.0.1:8788/path.

    The proxy now only rewrites absolute URLs whose host is exactly the proxied host, swapping the scheme and host together (which also fixes a related case where an https: scheme survived on a plain-HTTP dev address). Unrelated hosts and subdomains pass through untouched.

  • #​14601 3015320 Thanks @​MattieTK! - Improve the agent-facing --force guidance for Pages-to-Workers delegation

    When an AI agent opts out of the Pages-to-Worker

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@github-actions

github-actions Bot commented Mar 13, 2025

Copy link
Copy Markdown

size-limit report 📦

Path Size
src/_worker.ts 6.73 KB (0%)

@renovate
renovate Bot force-pushed the renovate/wrangler-4.x branch 8 times, most recently from c81b62f to 61d49a9 Compare March 21, 2025 02:10
@renovate
renovate Bot force-pushed the renovate/wrangler-4.x branch 9 times, most recently from c370a91 to 6d156e7 Compare March 28, 2025 02:41
@renovate
renovate Bot force-pushed the renovate/wrangler-4.x branch 9 times, most recently from ebeecb1 to 69188a7 Compare April 4, 2025 10:06
@renovate
renovate Bot force-pushed the renovate/wrangler-4.x branch 3 times, most recently from b2a5082 to 5afdbd1 Compare April 5, 2025 05:47
@renovate
renovate Bot force-pushed the renovate/wrangler-4.x branch 10 times, most recently from dedb561 to 622eab4 Compare April 20, 2025 05:13
@renovate
renovate Bot force-pushed the renovate/wrangler-4.x branch 13 times, most recently from f5d2e28 to 1347ae5 Compare April 27, 2025 05:54
@renovate
renovate Bot force-pushed the renovate/wrangler-4.x branch 6 times, most recently from 4004eb2 to 21d7980 Compare May 2, 2025 02:09
Sign up for free to 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.

0 participants