Troubleshooting translation¶
Status: Current | Last reviewed: 2026-05-28
Bilingual / interpretation pipeline failure modes.
Symptom: Translation feed is silent¶
| Cause | How to verify | Fix |
|---|---|---|
Pipeline flows.{in,out}coming.pipeline is empty |
Inspect agent_versions.config JSON |
Seed at least one stage; or use the FlowEditor UI |
Translation provider missing in service-definitions/ |
Open the inspector — is the provider grayed out? | Add the provider stage. See universal-pipeline-builder.md |
| TTS voice does not exist for the target language | Provider returns 4xx; check ai-orchestrator logs | Pick a supported voice |
Symptom: Both speakers heard at full volume (no ducking)¶
MixTranslationStyle not active. Confirm media-proxy is serving the call:
overmind connect media-proxy
# Look for MixTranslationStyle in the log
If the log only shows MixUnderbed, the pipeline subtype is wrong — translation pipelines must use the translation subtype, not the bilingual subtype.
See audio-ducking.md.
Symptom: FlowEditor shows "max-update-depth exceeded"¶
Empty incoming flow on a translation agent — flows.incoming.pipeline = [] triggers a d3-hierarchy "cycle" loop:
UPDATE agent_versions
SET config = jsonb_set(config, '{flows,incoming,pipeline}', '[]'::jsonb)
WHERE id = <stuck-agent-id>;
Then seed a real first stage from the FlowEditor inspector. See flow-editor-empty-incoming-flow-loop.
Symptom: Wrong language detected¶
STT language detection runs at the first frames. For agents that need a forced language, set stt.config.language in the inspector. Auto-detect can mis-fire on short utterances.