Bug type
Regression (worked before, now fails)
Beta release blocker
No
Summary
Summary
Inbound and outbound conversation mode calls on Telnyx fail silently after
the initial greeting. Telnyx delivers all webhook events correctly (200
responses confirmed in Telnyx Webhook Deliveries debugger) but OpenClaw
drops transcript events because client_state is null.
Steps to reproduce
- Call Openclaw.
- Wait for responce.
Expected behavior
Expected Behavior
- Inbound call received → accepted → greeting spoken ✅
- call.initiated, call.answered, call.speak.started, call.speak.ended,
call.transcription all delivered by Telnyx with 200 response ✅
- OpenClaw has conversation.
Actual behavior
Actual Behavior
- Inbound call received → accepted → greeting spoken ✅
- call.initiated, call.answered, call.speak.started, call.speak.ended,
call.transcription all delivered by Telnyx with 200 response ✅
- OpenClaw logs stop at "Speaking initial message" — no transcription
processing, no LLM response, no hangup ❌
OpenClaw version
2026.5.28
Operating system
Debian 12
Install method
No response
Model
minimax m2.7
Provider / routing chain
PSTN → Telnyx (+15043990692) → Call Control App "Jarvis" (ID: 2969384855894230209) → Webhook: https://claw.braxtonmoody.com/voice/webhook → Cloudflare (DNS-only) → Nginx (web1, 192.168.1.113) → OpenClaw Gateway (192.168.1.183:18789) → voice-call plugin (127.0.0.1:3334)
Additional provider/model setup details
Environment
- OpenClaw: 2026.5.28
- voice-call plugin: 2026.5.28
- Provider: Telnyx
Root Cause (from debugging)
Inspecting Telnyx webhook delivery payloads shows:
"client_state": null
on ALL events after the initial answer. OpenClaw uses client_state to route
webhook events back to the active call record. With client_state null,
transcripts cannot be matched to the call and are silently dropped.
Workaround
None found. skipSignatureVerification=true confirmed active, ruling out
signature mismatch. Bug persists on voice-call plugin 2026.5.26 and 2026.5.28.
Logs, screenshots, and evidence
## Impact
- Inbound conversation mode: Jarvis answers and greets but cannot hear responses
- Outbound notify mode: auto-hangup timer fires but hangup command never executes
- Outbound conversation mode: same as inbound
Impact and severity
Additional information
Telnyx delivers call.transcription → 200 OK returned ✅
OpenClaw receives event but payload has client_state: null
Plugin cannot match event to active call record → event silently dropped ❌
Key evidence:
- Telnyx Webhook Deliveries shows all events as "Delivered" with 200 response
- call.transcription payload confirmed: "client_state": null
- OpenClaw logs confirm no processing after "Speaking initial message"
- Tested on voice-call plugin 2026.5.26 and 2026.5.28
- skipSignatureVerification: true confirmed active — not a signature issue
Bug type
Regression (worked before, now fails)
Beta release blocker
No
Summary
Summary
Inbound and outbound conversation mode calls on Telnyx fail silently after
the initial greeting. Telnyx delivers all webhook events correctly (200
responses confirmed in Telnyx Webhook Deliveries debugger) but OpenClaw
drops transcript events because client_state is null.
Steps to reproduce
Expected behavior
Expected Behavior
call.transcription all delivered by Telnyx with 200 response ✅
Actual behavior
Actual Behavior
call.transcription all delivered by Telnyx with 200 response ✅
processing, no LLM response, no hangup ❌
OpenClaw version
2026.5.28
Operating system
Debian 12
Install method
No response
Model
minimax m2.7
Provider / routing chain
PSTN → Telnyx (+15043990692) → Call Control App "Jarvis" (ID: 2969384855894230209) → Webhook: https://claw.braxtonmoody.com/voice/webhook → Cloudflare (DNS-only) → Nginx (web1, 192.168.1.113) → OpenClaw Gateway (192.168.1.183:18789) → voice-call plugin (127.0.0.1:3334)
Additional provider/model setup details
Environment
Root Cause (from debugging)
Inspecting Telnyx webhook delivery payloads shows:
"client_state": null
on ALL events after the initial answer. OpenClaw uses client_state to route
webhook events back to the active call record. With client_state null,
transcripts cannot be matched to the call and are silently dropped.
Workaround
None found. skipSignatureVerification=true confirmed active, ruling out
signature mismatch. Bug persists on voice-call plugin 2026.5.26 and 2026.5.28.
Logs, screenshots, and evidence
Impact and severity
Additional information
Telnyx delivers call.transcription → 200 OK returned ✅
OpenClaw receives event but payload has client_state: null
Plugin cannot match event to active call record → event silently dropped ❌
Key evidence: