Widget now served from cdn.speechify.ai; new flow_budget_exhausted call end reason

New widget embeds load from cdn.speechify.ai - a floating URL that tracks the current release, plus immutable version pins for change-controlled sites - and the Conversation resource's end_reason field now documents flow_budget_exhausted, a runtime backstop for looping calls.

Developer Relations · SpeechifyAI Labs
1 min read

New widget embeds now point at cdn.speechify.ai instead of the API host:

<script src="https://cdn.speechify.ai/widget/agents.js"></script>

That tracks the current release, cached for five minutes, so a fix reaches a returning visitor in minutes rather than a day. It’s what the docs and the console snippet hand you.

If your change-control process needs a bundle that never moves, request an exact version - https://cdn.speechify.ai/widget/v<MAJOR>.<MINOR>.<PATCH>/agents.js is immutable, cached for a year, and safe to protect with integrity=. Pin the version you tested and understand the trade: a pin never receives later fixes, and a version we don’t serve returns 404 rather than quietly falling back to another build. The embed guide carries the current release.

The existing https://api.speechify.ai/v1/widget/agents.js URL keeps working. If you use a strict CSP, add cdn.speechify.ai to script-src.

On the conversations side, the end_reason field on every conversation resource now documents flow_budget_exhausted. This is a runtime safety net above every call-duration ceiling: if the flow execution engine exceeds its total per-call budget (typically a loop the duration watchdog couldn’t intercept), the call ends cleanly with this reason instead of running indefinitely. If you see it, check your agent’s flow for a node that may be stuck in unbounded iterations.

See the docs changelog entry for the full Conversation schema reference.

Privacy preferences

Choose what we may store on this device. You can change this at any time from the footer.

Strictly necessary

Sign-in, security, load balancing, and remembering your privacy choices. These cannot be switched off.

Always on

Analytics

How the site is used in aggregate - which pages get read, where people get stuck - so we can improve it.

Marketing

Measures which campaigns bring people here, and lets us show relevant ads on other platforms.