{"record":{"id":"94cd8548b9615e67","repo":"cjpais/Handy","slug":"canary-transcription-failed","errorCode":null,"errorMessage":"Canary transcription failed: {}","messagePattern":"Canary transcription failed: (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src-tauri/src/managers/transcription.rs","lineNumber":1414,"sourceCode":"                        .map(|r| r.text)\n                        .map_err(|e| anyhow::anyhow!(\"GigaAM transcription failed: {}\", e)),\n                    LoadedEngine::Canary(canary_engine) => {\n                        output_was_translated = settings.translate_to_english;\n                        let lang = if validated_language == \"auto\" {\n                            None\n                        } else {\n                            Some(validated_language.clone())\n                        };\n                        applied_language_hint = lang.clone();\n                        let options = TranscribeOptions {\n                            language: lang,\n                            translate: settings.translate_to_english,\n                            ..Default::default()\n                        };\n                        canary_engine\n                            .transcribe(&audio, &options)\n                            .map(|r| r.text)\n                            .map_err(|e| anyhow::anyhow!(\"Canary transcription failed: {}\", e))\n                    }\n                    LoadedEngine::Cohere(cohere_engine) => {\n                        let lang = if validated_language == \"auto\" {\n                            None\n                        } else {\n                            Some(normalize_cjk_language(&validated_language).to_string())\n                        };\n                        applied_language_hint = lang.clone();\n                        let options = TranscribeOptions {\n                            language: lang,\n                            ..Default::default()\n                        };\n                        cohere_engine\n                            .transcribe(&audio, &options)\n                            .map(|r| r.text)\n                            .map_err(|e| anyhow::anyhow!(\"Cohere transcription failed: {}\", e))\n                    }\n                }","sourceCodeStart":1396,"sourceCodeEnd":1432,"githubUrl":"https://github.com/cjpais/Handy/blob/ba10ce1943ef34e93c09494027fc0b9ced2e8a44/src-tauri/src/managers/transcription.rs#L1396-L1432","documentation":"The Canary branch sets translate from settings.translate_to_english, builds TranscribeOptions { language, translate, ..default } and calls transcribe; this error wraps the ONNX Runtime failure. Note this path records output_was_translated so downstream language detection knows the output is English.","triggerScenarios":"canary_engine.transcribe errors during inference: ORT provider failure, unsupported language string combination with translate enabled, degenerate audio, or corrupt graph files.","commonSituations":"Translate-to-English enabled with a language the model handles poorly; GPU provider issues; corrupted download.","solutions":["Check the chained ORT message; toggle translate_to_english off and retry to isolate the option","Switch accelerator to CPU if a provider error is shown","Re-download the Canary model","Retry with a longer recording"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// before transcribe(): guard the translate option against the model's capabilities\nif model_info.engine_type == EngineType::Canary && !caps.supports_translate {\n    settings.translate_to_english = false;\n}","typeGuard":null,"tryCatchPattern":"if let Err(e) = manager.transcribe(audio.clone()) {\n    if e.to_string().contains(\"Canary transcription failed\") && settings.translate_to_english {\n        settings.translate_to_english = false; // isolate the option, retry\n        return manager.transcribe(audio);\n    }\n    return Err(e);\n}","preventionTips":["Only enable translate-to-English for models advertising translate support","Keep audio recordings at least ~1s","Re-download the Canary model when graph (not provider) errors appear"],"tags":["rust","onnx","canary","inference","translation"],"backgroundTag":"model-inference-failed","analyzedSha":"ba10ce1943ef34e93c09494027fc0b9ced2e8a44","analyzedAt":"2026-08-17T10:29:55.597Z","contentChangedAt":"2026-08-17T10:29:55.597Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}