Cloudflare breaking change: v6.0.0
What changed
major SDK release: renamed client paths, method signature changes, 179 return type changes, 17 removed endpoints, 43 removed types
From the upstream announcement:
6.0.0 (2026-04-30) This is a major version release of the Cloudflare TypeScript SDK. It includes 11 entirely new top-level API resources, new sub-resources and methods across 50+ existing resources, SDK infrastructure improvements, and breaking changes to the generated API surface from the v5.x line. The total API surface grew from ~96 resource sections to 106, with 885 source files changed. Full Changelog: v6.0.0-beta.2...v6.0.0 Breaking Changes SDK Infrastructure Retry-After handling changed : The SDK now respects any server-specified Retry-After value for rate-limited requests. Previously, values over 60 seconds were ignored and a default backoff was used instead. Empty response handling : Responses with content-length: 0 now return undefined instead of attempting to parse the body. This may affect code that expected an empty object or null. Environment variable reading : Empty string […]
Who is affected
The mechanically fixable core: (1) rename member chains per the release map (hostnames.certificates -> zoneCertificates, netflows -> netFlows); (2) rewrite the two toMarkdown call sites to fold the positional file/body arg into the params object; (3) update type imports where the release names a direct successor (Cloudflared*Response -> CloudflareTunnel, SchemaUpload -> UserSchemaCreateResponse, pagination type renames); (4) delete annotations of types with no successor and let inference take over - return type changes are compile-time only, wire behavior is unchanged.
To find out whether your repo is hit — file and line number, no code leaving your machine:
npx mendapi scan --repo .
How to fix it
Migration path:
The mechanically fixable core: (1) rename member chains per the release map (hostnames.certificates -> zoneCertificates, netflows -> netFlows); (2) rewrite the two toMarkdown call sites to fold the positional file/body arg into the params object; (3) update type imports where the release names a direct successor (Cloudflared*Response -> CloudflareTunnel, SchemaUpload -> UserSchemaCreateResponse, pagination type renames); (4) delete annotations of types with no successor and let inference take over - return type changes are compile-time only, wire behavior is unchanged. Boundaries ruled out of this verdict: the 17 removed endpoints and client.intel.ipLists are capability withdrawals (callers need a product decision, not a codemod), and the Retry-After/empty-response/env-var semantics changes are behavioral and need per-site review. Confidence medium: rename maps are deterministic but the surface is large and mixed.
Before:
const md = await client.ai.toMarkdown.transform(file, { account_id });
After:
const md = await client.ai.toMarkdown.transform({ account_id, files: [file] });
With your own LLM key configured (BYO compute — mendapi never proxies your credentials), npx mendapi llmfix turns this guide into a reviewable draft patch for your repo.
Detected and tracked by mendapi — Dependabot for every API you depend on. Scans run locally; your code never leaves your machine.
Related
- All monitored providers — live change counts for cloudflare and 19 others.
- Migration pack catalog — every deterministic fix mendapi ships.
- Getting started — scan your repo in 30 seconds, no code leaves your machine.