-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
[Bug]: iOS Talk realtime session closes before audio append and ignores server stt-tts routing #91007
Copy link
Copy link
Closed as not planned
Closed as not planned
Copy link
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.staleMarked as stale due to inactivityMarked as stale due to inactivity
Description
Metadata
Metadata
Assignees
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.staleMarked as stale due to inactivityMarked as stale due to inactivity
Type
Fields
Priority
None yet
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
On iOS, Talk appears to start listening, but no voice interaction happens. The paired iOS node is connected, has microphone and speech-recognition permissions, advertises Talk/voice surfaces, and accepts ordinary node commands, so this does not look like a pairing, Tailscale, or generic command-channel failure.
Repeated Talk attempts create a Gateway realtime relay session, then the Gateway closes the session almost immediately. Subsequent audio appends on the same connection fail with
Error: Unknown Talk session.There is a second related routing issue: even after server config is changed to request
talk.realtime.mode=stt-ttsandtalk.realtime.transport=managed-room, the iOS Talk path still starts astalkMode=realtime,talkTransport=gateway-relay,talkProvider=openai. The mobile client appears to override or ignore the server Talk routing config.Steps to reproduce
device.status.mode=stt-tts,transport=managed-room,brain=agent-consult, restart the Gateway, and repeat.Expected behavior
The iOS Talk path should either:
Actual behavior
The iOS Talk UI says it is listening, but nothing useful happens. Gateway logs show:
talk.configsucceedsopenaisession.closedis emitted almost immediatelytalk.session.appendAudiothen fails witherrorCode=UNAVAILABLEanderrorMessage=Error: Unknown Talk sessionA fresh repro showed
turn.startedwithtalkMode="realtime",talkTransport="gateway-relay",talkBrain="agent-consult",talkProvider="openai"; about 80ms latersession.closedappeared, followed by twotalk.session.appendAudiofailures forUnknown Talk session.OpenClaw version
Gateway: 2026.6.1 stable. npm latest stable also reported 2026.6.1.
Operating system
Gateway on macOS. iOS node reports platform iOS 26.6.0.
Install method
npm for Gateway. iOS app installed on iPhone.
Model
OpenAI realtime provider configured for Talk.
Provider / routing chain
Gateway Talk catalog reports realtime OpenAI configured and Microsoft STT/TTS configured.
Additional provider/model setup details
The iOS node reports version 2026.6.2. Node permissions include
microphone=trueandspeechRecognition=true; capabilities includetalkandvoiceWake; commands includetalk.ptt.start,talk.ptt.stop,talk.ptt.once, andtalk.ptt.cancel.A basic
device.statusnode invoke succeeds while the app is awake, returning device status data. Tailscale connectivity was active/direct, and the Gateway was reachable through Tailscale Serve.A separate APNS/background wake issue is visible in wake logs (
path=no-registration/reason=no-registration), but the foreground Talk failure reproduces while the node is connected and awake.openclaw update --tag beta --dry-run --jsoncurrently targets 2026.6.5-beta.1; no beta update was applied for this report.Logs, screenshots, and evidence
After setting server config to request
talk.realtime.mode=stt-tts,talk.realtime.transport=managed-room, andtalk.realtime.brain=agent-consult, bothopenclaw config get talk --jsonandtalk.configreflected those keys, but the iOS Talk attempt still usedrealtime/gateway-relay/openai.Impact and severity
Talk/voice is unusable on a paired, connected iPhone even though the Gateway, command channel, permissions, and provider catalog appear healthy.
Additional information
This is related to, but distinct from, #89198 and #90952: