remotion-dev/remotion · error
${model.name} does not support translation.
Error message
${model.name} does not support translation. What it means
Translation is only supported by some Whisper models (the multi-language, non-`.en` variants). When task is "translate" but the selected model's supportsTranslation flag is false, the tool rejects the combination with this error.
Source
Thrown at packages/studio/src/components/WebMcp.tsx:530
const modelName = input.model ?? 'small.en';
if (typeof modelName !== 'string') {
throw new Error('model must be a string.');
}
const model = whisper
.getAvailableModels()
.find((candidate) => candidate.name === modelName);
if (!model) {
throw new Error(`Unknown Whisper model: ${modelName}.`);
}
const task = input.task ?? 'transcribe';
if (task !== 'transcribe' && task !== 'translate') {
throw new Error('task must be transcribe or translate.');
}
if (task === 'translate' && !model.supportsTranslation) {
throw new Error(`${model.name} does not support translation.`);
}
const language = input.language ?? 'en';
if (typeof language !== 'string' || language.length === 0) {
throw new Error('language must be a non-empty string.');
}
const chunkLengthInSeconds = input.chunkLengthInSeconds ?? 30;
const strideLengthInSeconds = input.strideLengthInSeconds ?? 5;
const temperature = input.temperature ?? 1;
const topK = input.topK ?? 50;
const repetitionPenalty = input.repetitionPenalty ?? 1;
const noRepeatNgramSize = input.noRepeatNgramSize ?? 0;
if (
typeof chunkLengthInSeconds !== 'number' ||
!Number.isFinite(chunkLengthInSeconds) ||
chunkLengthInSeconds < 1 ||
chunkLengthInSeconds > 30View on GitHub (pinned to b2f4e34732)
Solutions
- Use a multi-language model (e.g. "tiny", "base", "small", "medium", "large-v3") when task is "translate"
- Or change task to "transcribe" if translation is not actually needed
- Check the model entry's supportsTranslation field before selecting it
Example fix
// before
{ "model": "tiny.en", "task": "translate" }
// after
{ "model": "tiny", "task": "translate" } Defensive patterns
Strategy: validation
Validate before calling
const model = whisper.getAvailableModels().find((m) => m.name === input.model);
if (input.task === 'translate' && model && !model.supportsTranslation) {
throw new Error(`Model ${input.model} cannot translate; pick a multi-language model`);
} Type guard
const supportsTranslate = (name: string): boolean => whisper.getAvailableModels().find((m) => m.name === name)?.supportsTranslation === true;
Try / catch
try {
await callWhisperTool({ model, task: 'translate' });
} catch (err) {
if (err instanceof Error && err.message.includes('does not support translation')) {
// retry with a multi-language model
await callWhisperTool({ model: 'base', task: 'translate' });
}
} Prevention
- Check supportsTranslation before choosing task 'translate'
- Avoid `.en` models for translation tasks
- Gate the translate option in UI on model capability
When it happens
Trigger: Calling the transcription tool with { model: "tiny.en", task: "translate" } or any other `.en` English-only model with task "translate".
Common situations: Choosing an English-only model for speed, then requesting translation; not realizing `.en` models cannot translate to English because they only understand English.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- Invalid whisper model ${model}. Available: ${models.join(',
- Non-semantic version provided. Only releases of Whisper.cpp
- Unknown Whisper model: ${selectedModel}
- Unknown Whisper model: ${modelName}.
- task must be transcribe or translate.
AI-assisted analysis of remotion-dev/remotion@b2f4e34732 (2026-09-09).
Data as JSON: /api/errors/3a55dc04eae3c1a5.
Report an issue: GitHub.