Why is the emulator silent¶
Status: Current | Last reviewed: 2026-06-02
The phone emulator opens and the call shows as connected, but no transcript appears and you hear no agent. Work this list in order. Most cases land in the first three checks.
1. Check microphone permission¶
The emulator needs a working microphone, or Type to speak mode enabled. Common cases:
- Browser blocked microphone access. Look for a microphone icon in the address bar; click it and grant access.
- The browser is using the wrong microphone. Open browser settings → Privacy → Microphone, and pick the device you want to use.
- Your headset's microphone is muted at the hardware level. Unmute it.
To confirm: open https://webcamtests.com/check in the same browser. If audio works there, it should work in the emulator.
2. Switch to "Type to speak" mode¶
If you're on a shared box and don't want to talk out loud, or you're on a Codespaces session without microphone permission, toggle Type to speak in the emulator. Type a message; the emulator renders it as TTS audio and injects it as the call audio.
This bypasses the microphone and confirms whether the agent works.
3. Check the pipeline for validation errors¶
Close the emulator. Open the version's pipeline editor. Any red dots on stages? A pipeline with validation errors connects the call but never produces audio. Fix the errors, save, and try again.
Common validation gotchas:
- TTS stage with no voice ID selected.
- LLM stage with a model that's been removed from the integration.
- An incoming flow that doesn't terminate at the output.
4. Check the integrations¶
Each stage uses an integration. If a Deepgram, OpenAI, or ElevenLabs integration is misconfigured or expired, the stage silently produces nothing. Open Integrations and click Test connection on each one your agent uses.
5. Check Amazon Connect WebRTC calls¶
If you are using the standalone /emulator with an Amazon Connect integration, confirm these before chasing pipeline audio:
- The integration has a valid AWS region and either
instance_idor a Connect instance ARN. - The runtime role or saved AWS credentials can call
ListContactFlowsandStartWebRTCContact. - The selected contact flow is active and reachable in that Connect instance.
- Your browser allowed microphone access for the ai-manager origin.
- The contact flow is using the attributes you entered as test data; values such as
ani,caller_id_number, and custom keys are not verified caller identity.
DTMF from the connected call is sent through Amazon Connect's participant API. If the flow waits for keypad input and never advances, retry after reconnecting the call, then check the browser console and server logs for the DTMF proxy response.
6. Watch the trace live¶
Open Phoenix while the call is active. Ask your administrator for its URL, often https://<your-host>/phoenix. Spans appear in real time in the conversations project. If you see no spans, the call never reached the orchestrator and the platform has a routing problem. If you see STT spans but no LLM spans, the LLM call is hanging or rejected. Expired keys cause that pattern often.
7. Restart the call¶
WebRTC can get stuck after you open the emulator, navigate away, and come back. Hang up the call and start a new one to renegotiate.
8. Try a different browser¶
If a fresh emulator session in a clean browser profile works, you have an extension or stale state in your usual browser interfering. The most common culprit is an aggressive ad-blocker rewriting WebRTC traffic.
Still silent¶
If you've worked through all eight and the emulator is still silent, file a ticket with:
- The agent's tenant + version
- A screenshot of the emulator state
- The Phoenix trace URL if any spans appeared
Include whether the same agent works in production with a real phone number. That helps separate emulator-specific issues from platform-wide failures.