← All breaking-change reports

Twilio breaking change: 5.13.1

twilio · breaking · 2026-03-24 · upstream source

What changed

Removed estimatedCompletionTime from LongRunningOperationResponse; moved operationId from the response body to headers

From the upstream announcement:

Release Notes Data-ingress API Changes 2026-03-23 Added stage-us1 to supportedRealms for all endpoints 2026-03-20 Content updates : Removed estimatedCompletionTime from LongRunningOperationResponse Moved operationId from LongRunningOperationResponse to headers 2026-03-18 Added 1 new path(s) : /v1/ControlPlane/Operations/{OperationId} (GetControlPlaneOperationStatus) 2026-03-11 Minor updates (formatting, metadata) 2026-03-11 Minor updates (formatting, metadata) 2026-03-11 Minor updates (formatting, metadata) 2026-03-11 Minor updates (formatting, metadata) 2026-03-11 Minor updates (formatting, metadata) 2026-03-05 Initial release with 10 paths and 22 operations Memory 2026-03-19 Added 1 new path(s) : /v1/ControlPlane/Operations/{operationId} (FetchOperation) 2026-03-11 Minor updates (formatting, metadata) Docs

Who is affected

Two mechanical rewrites at read sites of LongRunningOperationResponse consumers.

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:

Two mechanical rewrites at read sites of LongRunningOperationResponse consumers. First, any read of operationId from the parsed response body must switch to reading the operation id response header exposed by the same call (for raw REST callers, read it from the fetch Response headers; SDK callers should use the headers surface of the returned operation). Second, reads of estimatedCompletionTime must be deleted: the field is gone with no successor, so completion should be tracked by polling the new GET /v1/ControlPlane/Operations/{OperationId} status path added in the same release window instead of projecting an estimate. Because the upstream spec is not published in twilio-oai, a fixture-verified migration pack cannot be built with token-level spec proof; this stays LLM-assisted draft grade with the release notes as evidence.

Before:

const op = await res.json();
scheduleRefresh(op.estimatedCompletionTime);
track(op.operationId);

After:

const op = await res.json();
track(res.headers.get('operation-id'));
// completion is now observed via GET /v1/ControlPlane/Operations/{OperationId}

Replacement data source: operationId is still returned, relocated to the HTTP response headers of the same operation endpoints

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

Pre-release. Change data is recorded from upstream provider releases, changelogs and OpenAPI spec diffs; every article links its source.