Skip to content

Wrangler deploy repeatedly fails with write EPIPE on Workers Versions API after asset upload #15230

Description

@johnwheeler

What versions & operating system are you using?

System:
  OS: macOS 26.2
  CPU: (24) arm64 Apple M2 Ultra
  Memory: 49.52 GB / 128.00 GB
  Shell: 5.9 - /bin/zsh
Binaries:
  Node: 26.5.0
  npm: 11.17.0
npmPackages:
  @opennextjs/cloudflare: 1.20.1
  @prisma/adapter-pg: 7.8.0
  @prisma/client: 7.8.0
  next: 16.2.10
  prisma: 7.8.0
  wrangler: 4.123.0

The same failure also occurred with Wrangler 4.110.0 before upgrading to 4.123.0.

Please provide a link to a minimal reproduction

There is no public reproduction repository because this is a private production project. The failure reproduces consistently by running the project's OpenNext production deploy (CLOUDFLARE_ENV=production opennextjs-cloudflare deploy). A closely related prior report is #14922.

Describe the Bug

Wrangler completes configuration processing, reads/uploads static assets, fetches the existing Worker settings successfully, and then consistently fails while creating the Worker version:

POST /accounts/<account-id>/workers/scripts/<worker-name>/versions
TypeError: fetch failed
  [cause]: Error: write EPIPE
    errno: -32
    code: 'EPIPE'
    syscall: 'write'

Wrangler retries the Versions API request three times. Each attempt fails after approximately 15 seconds without receiving an HTTP response.

Other Cloudflare API requests in the same deploy succeed. In the latest attempt:

  • The asset upload returned HTTP 201.
  • GET /workers/scripts/<worker-name>/settings returned HTTP 200.
  • Only POST /workers/scripts/<worker-name>/versions failed.

The generated Worker is 15,749.04 KiB uncompressed / 3,880.29 KiB gzip. This account is on the Workers Paid plan. An almost identical bundle (15,748.80 KiB / 3,880.38 KiB gzip) deployed successfully from the same machine earlier on August 16, 2026, so this does not appear to be a bundle-size rejection.

The machine has normal connectivity and is not using a VPN, firewall, or explicit proxy. The behavior is consistent across repeated attempts and persisted after upgrading Wrangler.

This resembles #14922 and the Cloudflare incident documented at https://www.cloudflarestatus.com/incidents/z325n2dc14tk: other API calls and asset upload succeed, but the Versions API fails. That incident produced an HTML 403 WAF response, whereas this failure closes the connection with EPIPE before Wrangler receives any response. The project also uses Prisma with @prisma/adapter-pg, as did one of the reports in #14922.

Expected behavior: Wrangler should create and deploy the new Worker version, or return a structured API error explaining why the version was rejected.

Please provide any relevant error logs

Sanitized excerpt from the latest Wrangler debug log:

2026-08-16T21:01:41.553Z
POST https://api.cloudflare.com/client/v4/accounts/<account-id>/workers/assets/upload?base64=true

2026-08-16T21:01:42.286Z
HTTP 201 Created

2026-08-16T21:01:42.557Z
GET https://api.cloudflare.com/client/v4/accounts/<account-id>/workers/scripts/<worker-name>/settings

2026-08-16T21:01:42.832Z
HTTP 200 OK

2026-08-16T21:01:42.839Z
POST https://api.cloudflare.com/client/v4/accounts/<account-id>/workers/scripts/<worker-name>/versions

2026-08-16T21:01:58.008Z
TypeError: fetch failed
  [cause]: Error: write EPIPE

2026-08-16T21:01:58.009Z
Retry: POST .../versions

2026-08-16T21:02:13.293Z
TypeError: fetch failed
  [cause]: Error: write EPIPE

2026-08-16T21:02:14.295Z
Retry: POST .../versions

2026-08-16T21:02:29.683Z
TypeError: fetch failed
  [cause]: Error: write EPIPE

Because the connection closes before an HTTP response is received, the log contains no status code or Cloudflare Ray ID for the failed requests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    awaiting-response:reporterAwaiting response from OP for further clarificationpackage:wranglerRelating to the `wrangler` package

    Type

    No type

    Projects

    Status
    Untriaged

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions