{"record":{"id":"d0aff12f179bac6d","repo":"Comfy-Org/ComfyUI","slug":"unknown-voice-voice","errorCode":null,"errorMessage":"Unknown voice: {voice}","messagePattern":"Unknown voice: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"comfy_api_nodes/nodes_elevenlabs.py","lineNumber":232,"sourceCode":"            description=\"Select a predefined ElevenLabs voice for text-to-speech generation.\",\n            inputs=[\n                IO.Combo.Input(\n                    \"voice\",\n                    options=ELEVENLABS_VOICE_OPTIONS,\n                    tooltip=\"Choose a voice from the predefined ElevenLabs voices.\",\n                ),\n            ],\n            outputs=[\n                IO.Custom(ELEVENLABS_VOICE).Output(display_name=\"voice\"),\n            ],\n            is_api_node=False,\n        )\n\n    @classmethod\n    def execute(cls, voice: str) -> IO.NodeOutput:\n        voice_id = ELEVENLABS_VOICE_MAP.get(voice)\n        if not voice_id:\n            raise ValueError(f\"Unknown voice: {voice}\")\n        return IO.NodeOutput(voice_id)\n\n\nclass ElevenLabsTextToSpeech(IO.ComfyNode):\n    @classmethod\n    def define_schema(cls) -> IO.Schema:\n        return IO.Schema(\n            node_id=\"ElevenLabsTextToSpeech\",\n            display_name=\"ElevenLabs Text to Speech\",\n            category=\"partner/audio/ElevenLabs\",\n            description=\"Convert text to speech.\",\n            inputs=[\n                IO.Custom(ELEVENLABS_VOICE).Input(\n                    \"voice\",\n                    tooltip=\"Voice to use for speech synthesis. Connect from Voice Selector or Instant Voice Clone.\",\n                ),\n                IO.String.Input(\n                    \"text\",","sourceCodeStart":214,"sourceCodeEnd":250,"githubUrl":"https://github.com/Comfy-Org/ComfyUI/blob/1c6d8d45b3693bfbb32385b410d813a7fd6be216/comfy_api_nodes/nodes_elevenlabs.py#L214-L250","documentation":"Raised by the ElevenLabs voice-picker node when the selected voice label is not a key in ELEVENLABS_VOICE_MAP, so no voice id can be resolved. The node is a pure local lookup: it maps the display label shown in the combo to ElevenLabs' voice UUID.","triggerScenarios":"execute() receives a voice string absent from ELEVENLABS_VOICE_MAP — stale value from an old workflow JSON, a typed-in combo value, or a renamed voice label.","commonSituations":"Loading workflows saved when the voice list differed (voices added/removed by ElevenLabs); hand-editing workflow JSON; programmatic API prompts passing a raw voice UUID or free-text name instead of the exact label.","solutions":["Re-open the node and re-select a voice from the dropdown so a current label is stored.","If calling via the HTTP API, use the exact voice label currently offered by the combo, not a UUID.","Update the workflow JSON's voice field to one of the currently supported labels."],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":"def is_known_voice(voice_label: str, voice_map: dict[str, str]) -> bool:\n    return voice_label in voice_map","tryCatchPattern":null,"preventionTips":["Select voices from the dropdown; never hand-type labels into combo widgets.","After loading shared workflows, re-pick combo values that may be stale.","When using the HTTP API, source the label from the node's current combo options."],"tags":["comfyui","elevenlabs","tts","validation","enum","workflow-compat"],"backgroundTag":null,"analyzedSha":"1c6d8d45b3693bfbb32385b410d813a7fd6be216","analyzedAt":"2026-08-14T19:37:18.893Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}