Twilio breaking change: 5.13.1
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
- All monitored providers — live change counts for twilio and 19 others.
- Migration pack catalog — every deterministic fix mendapi ships.
- Getting started — scan your repo in 30 seconds, no code leaves your machine.