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:
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
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_idfrom 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 sessiontimezone.Conversation context: coordinate the service's
accepted_contextwith callers that create conversations and the selected Context Graph's bindings. Service updates usePUT. Matching names usecontext_bindings;context_binding_aliasesmaps 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 betweenchannel-idand 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_sidvalues 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
Pin the intended package and record the previous version.
Compile the affected client code and compare the operations you use with their current contracts.
Rerun representative success, access-denial, pending-work, interrupted-request, and cleanup cases on a test deployment.
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?

