xAI realtime resumption returns UNAVAILABLE after reconnect
Summary
The existing xAI realtime voice live flow consistently reaches audio output, server-VAD barge-in, tool execution, and a forced resumable reconnect, but the first resumed marker-recall response fails with an xAI backend StatusCode.UNAVAILABLE error instead of producing a final assistant transcript.
Reproduction
Run with a valid xAI key:
OPENCLAW_LIVE_TEST=1 node scripts/test-live.mjs -- extensions/xai/xai.live.test.ts -t "runs realtime voice audio, tool, barge-in, and resumed-context flow"The failure reproduced four times on July 31, 2026:
- frozen
mainSHA007fdb1f7c1cfdb03532dbf5cb23be1b386fe0aa - PR head
21d2e32fd920bf6116c2a431ce710d5e2001b43a
Expected
After session.reconnect.ready, the resumed prompt returns the earlier tool marker and emits a final assistant transcript.
Actual
The resumed session replays conversation items, accepts the new user item, and starts a response, then emits a provider error equivalent to:
AioRpcError: StatusCode.UNAVAILABLE: Service temporarily unavailable.The error is delivered to onError, no final assistant transcript arrives, and the live assertion times out.
Scope
This is not introduced by https://github.com/openclaw/openclaw/pull/116659; the same failure reproduces on frozen current main. Keep the investigation scoped to xAI resumed-response error handling and the live resumption contract. Do not fold it into terminal queue retention.
Source: openclaw/openclaw