For the complete documentation index, see llms.txt. This page is also available as Markdown.

Current Upgrade Guidance

Identify the API and SDK you use, review current integration boundaries, and plan compatibility checks before consulting historical release entries.

Start here when maintaining an existing integration. Changelogs record what changed at a point in time; the current Developer Guide and public schema define the integration contract. A source update without publication metadata is not a numbered release or proof that every deployment has changed.

1. Identify Your Integration

Record the API family, regional base, credential type, workspace or organization, SDK package and pinned version, channel, and selected service/configuration. See the package snapshot for the last verified package versions. Classic and Platform packages use different resources and credentials; do not replace one package with the other as a routine version bump.

2. Check Current Boundaries

Check these requirements when adopting the September and October 2026 updates:

If your integration uses…
Check or change…
Guide

SDK client.workspaceDatabase, client.desktopSessions, client.tasks, or client.settings.gapScanner

SDK 0.112.0 removes them. The first three called routes the Platform API no longer serves, and no gap scanner has run since October 10, 2026; remove the calls before upgrading

Data-source sync, gap-scanner preview or scan, /health/sync, or sync-health fields, including SDK triggerSync() and gapScanner.preview() or scan()

These were removed with the connector runner on October 10, 2026, and data sources no longer poll; remove the calls and fields, and upgrade to SDK 0.111.0 or later

Scheduled outbound_task outreach or connector write-back

Nothing dispatches due outbound tasks or delivers connector write-back since October 10, 2026; place calls through the Calls API

A ?token= credential on the observer or test-call WebSocket

Send it in Sec-WebSocket-Protocol as auth, <token>; a socket without it closes with 4001

Dynamic forwarding (forward_to: null)

List every transfer number in forwarding.approved_destinations; with none, the agent is not offered forward_call

Voice or text sessions that rely on caller-ID or entity_id patient context

Add world_confirm_patient_identity to the identity state; the record loads only after the caller's name and date of birth match one record

Simulations, test caller numbers, or test credentials that exercise real tools

Every tool now returns a dry_run result in those sessions; test live tool behavior in the Playground

Services with no TTS provider or setting

Calls now speak ElevenLabs eleven_v4_turbo; set tts_provider to cartesia to keep Cartesia

Metric list offset, simulation score_label, or caller-set suite:, suite_run:, or safety: run tags

Page metrics with continuation_token, read the judge rationale instead of a score, and let the server set suite and safety tags

Integrations on a non-public host, an http URL, or an endpoint that redirects

Use an HTTPS URL on a public host and its final address; other hosts return 422, and redirects are not followed

Empty-message turns after a conversation starts

Send a message, content, or media; an empty turn is only the kickoff of a conversation with no turns and otherwise returns 422

Engage model preferences on gpt-5.4, gpt-5.5, gpt-5.6, or gpt-6 with a reasoning_effort

Tool turns now run at none; clear an engage effort above none or the next service or version-set save returns 422

Skills or model preferences pinned to claude-sonnet-5, claude-sonnet-4-6, claude-opus-4-8, or claude-haiku-4-5

Conversations and the skill tester now run them on the 5.5 model of the same tier; re-test, then pin the current id

A service voice_config.tts_model, including a Forge preset that sets it

The field is ignored; pin a Cartesia model in tts_config.model

realtime.model of gpt-realtime-1.5 or gpt-realtime-2, or a realtime transcription model other than gpt-transcribe

Writes now return 422; use gpt-realtime-2.1 or gpt-realtime-2.1-mini, and gpt-transcribe

Integration endpoint schemas with a root anyOf, oneOf, allOf, or $ref, or arrays without items

Reshape the input_schema; writes return 422, and a stored endpoint with such a schema cannot be called by the agent

Retries on function or data-query invoke

Do not retry a 422; fix the arguments. Retry only 503

Retries on text turns that fail with 502

A model rejection is non-retryable; fix the configuration or content and send a new turn

A hand-written SSE parser or a strict session WebSocket frame validator

Skip SSE comment lines such as : ping - <timestamp> and ignore the ping event and any other unrecognized session event

ElevenLabs voices, especially ones that rely on speed, style, or similarity_boost

Unpinned and retired-model ElevenLabs calls now use eleven_v4_turbo, where only stability applies; re-test speaking rate and voice character

Cartesia pins to sonic-turbo, sonic-2, or another retired model

Those calls now speak Sonic 3.6; replace the pin with a current model

POST /v1/{workspace_id}/fhir/build-bundle

Build the FHIR Bundle in your own code and submit it to FHIR import

A workspace API key on the direct Voice Agent session-event route

Move to the Platform session injection operation; the direct route now returns 401 for workspace keys

Voice tools bound to optional context keys

A declared key the call did not start with now blocks the bound tool until it is set on the live call; supply it at start, set it live, or remove the binding

Retrying streamed turns on error

Treat the closed-conversation error frame (retryable: false, status_code 409) as terminal; retry only the 504 reply-timeout frame, and after the non-retryable 500 frame send a new turn instead of replaying the same key

Outbound call retries

Reuse the same idempotency_key; handle 409 for an in-flight or mismatched claim and retry 503 with the same key

Email use cases with accepts_cold_inbound

Use inbound_mode; receiving modes need the inbound MX record verified

Scribe EHR writeback with carried-forward fields

Handle the carried value on note reads as chart content; a provider edit to a carried field is now written at finalize instead of the carried value

Scribe session creation

Send the provider's IANA timezone on every create

A Cartesia voice that relies on the platform default model

Calls without a stored model now use Sonic 3.6; pin a model on the service or language entry to keep another

Console takeover controls or a Runs Live-tab bookmark

Use All runs and its Live status filter for browsing; retained API controls require a separate integration and supported runtime

Voice forwarding or dialed operator destinations

Configure allowed_forwarding_numbers with the provisioning owner and verify each destination; an empty list denies forwarding

Scribe note edits or autosave

Save the complete structured note with base_version, reconcile conflicts, and finalize the reviewed version

Retired transcript verification fields

Remove accuracy/verified-transcript dependencies and verify available transcript evidence

Managed channel provisioning through old workspace routes

Arrange managed provisioning separately, then use the public service-binding contract

Shareable intake upload links or the retired external HMAC upload path

Use the supported authenticated dataset-intake workflow; confirm processing and queryability separately

Standalone ringless voicemail

Remove that retired workflow; ordinary outbound-call voicemail handling is a separate voice capability

A text answer treated as complete at acknowledgement

Handle pending work and the supported background-delivery receipt protocol

Scribe through generic text-session or login-session assumptions

Use its deployment base, provider access, session mode, and artifact lifecycle

SMS delivery inferred from conversation creation or an opt-in send record

Inspect consent/suppression and delivery evidence independently

Mutable workspace environment or region settings

Select the appropriate regional workspace and use the current workspace contract; retired fields do not move a deployment

Use the relevant endpoint's current schema for exact requests, responses, and deprecation metadata. Do not infer one deadline or replacement operation from a historical feature title.

Also check the following changes where they apply:

  • SDK upgrades: review the Classic 2.0.0 and Platform 0.108.0 compatibility changes and the October package releases. Classic generated fields and model identifiers changed; Platform fleet status no longer accepts a selector; Platform 0.109.1 removes service_id from outbound call requests; Platform 0.111.0 removes the data-source sync and gap-scanner preview and scan methods; Scribe moved to @concurrence-hq/scribe-typescript-sdk, and its 1.0.0 requires a session timezone.

  • Conversation context: coordinate the service's accepted_context with callers that create conversations and the selected Context Graph's bindings. Service updates use PUT. Matching names use context_bindings; context_binding_aliases maps a tool parameter to a differently named context key. Review Conversation Context for companion-skill inputs, restored text sessions, SDK type coverage, and the distinction between channel-id and verified identity.

  • Usage and cost: replace removed cost-to-serve reads with the current reports. Preserve their different access requirements and unavailable-data handling.

  • Voice records: treat call_sid values as opaque strings, including UUID-shaped values. Check retained Realtime history separately from live events.

  • Intake-source deletion: use the public contract. Removing a source registration retains imported data.

3. Validate the Change

  1. Pin the intended package and record the previous version.

  2. Compile the affected client code and compare the operations you use with their current contracts.

  3. Rerun representative success, access-denial, pending-work, interrupted-request, and cleanup cases on a test deployment.

  4. Verify configuration selection and recovery. Decide how to reconcile ambiguous external outcomes and what observations would stop or reverse the rollout.

The First Verified Conversation provides a pinned example and fixture checks for one Platform workflow. Passing those local checks does not establish compatibility for your full application or provisioned channel.

A package downgrade or configuration rollback does not undo a target-system action. Include those effects in the recovery plan before production rollout.

Find the Historical Detail

  • Concurrence API retains recent entries, an archive index, and forwarding headings for older bookmarks.

  • Web Platform does the same for Developer Console and Admin Portal history.

  • SDK Ecosystem tracks package-specific changes.

  • Agent Forge CLI tracks CLI changes independently.

When a historical entry and current behavior appear inconsistent, preserve the history and report the discrepancy with the version, operation, and observed evidence. Use Troubleshooting to identify the failing boundary.

Last updated

Was this helpful?