remotion-dev/remotion · error · Error
Error: Model ${model} does not exist at ${modelFolder ? mode
Error message
Error: Model ${model} does not exist at ${modelFolder ? modelFolder : modelPath}. Check out the downloadWhisperModel() API at https://www.remotion.dev/docs/install-whisper-cpp/download-whisper-model to see how to install whisper models What it means
Thrown by `transcribe` in @remotion/install-whisper-cpp when the requested model file does not exist at the resolved path. The path is computed via `getModelPath(modelFolder ?? whisperPath, model)`, producing `<folder>/ggml-<model>.bin`. If that file is missing, transcription cannot run and the error points you at the `downloadWhisperModel` API.
Source
Thrown at packages/install-whisper-cpp/src/transcribe.ts:158
tmpJSONPath: string;
modelFolder: string | null;
translate: boolean;
tokenLevelTimestamps: boolean;
printOutput: boolean;
tokensPerItem: number | null;
language: Language | null;
splitOnWord: boolean | null;
signal: AbortSignal | null;
onProgress: TranscribeOnProgress | null;
flashAttention?: boolean;
additionalArgs?: AdditionalArgs;
}): Promise<{
outputPath: string;
}> => {
const modelPath = getModelPath(modelFolder ?? whisperPath, model);
if (!fs.existsSync(modelPath)) {
throw new Error(
`Error: Model ${model} does not exist at ${
modelFolder ? modelFolder : modelPath
}. Check out the downloadWhisperModel() API at https://www.remotion.dev/docs/install-whisper-cpp/download-whisper-model to see how to install whisper models`,
);
}
const executable = getWhisperExecutablePath(whisperPath, whisperCppVersion);
const args = [
'-f',
fileToTranscribe,
'--output-file',
tmpJSONPath,
'--output-json',
tokensPerItem ? ['--max-len', tokensPerItem] : null,
'-ojf', // Output full JSON
tokenLevelTimestamps ? ['--dtw', modelToDtw(model)] : null,
model ? [`-m`, `${modelPath}`] : null,View on GitHub (pinned to 78fe4bb3fd)
Solutions
- Call `downloadWhisperModel({model, folder: modelFolder ?? whisperPath})` before `transcribe`.
- Verify the resolved path exists: `fs.existsSync(path.join(folder, 'ggml-' + model + '.bin'))`.
- Ensure `modelFolder` (if provided) is the same folder you downloaded into.
Example fix
// before
transcribe({model: 'base', whisperPath, audioFile, ...});
// after
await downloadWhisperModel({model: 'base', folder: whisperPath});
transcribe({model: 'base', whisperPath, audioFile, ...}); Defensive patterns
Strategy: validation
Validate before calling
import {existsSync} from 'fs';
import {getModelPath} from '@remotion/install-whisper-cpp';
function ensureModel(model: WhisperModel, folder: string) {
const p = getModelPath(folder, model);
if (!existsSync(p)) {
throw new Error(`Model ${model} missing at ${p}. Call downloadWhisperModel first.`);
}
} Prevention
- Always run downloadWhisperModel for the same model and folder before transcribe.
- In CI, cache the whisper folder and assert the model file exists as a pre-render check.
- Keep modelFolder consistent between download and transcribe calls.
When it happens
Trigger: Calling `transcribe({model: 'base', ...})` without having first run `downloadWhisperModel({model: 'base', ...})`; passing a `modelFolder` that does not contain the model; the model was deleted between install and transcription.
Common situations: Forgetting the download step in a fresh environment/CI; pointing `modelFolder` at the wrong directory; switching models without downloading the new one; the model file was removed by a cleanup step.
Related errors
- Invalid whisper model ${model}. Available: ${models.join(',
- Model ${model} already exists at ${filePath}, but the size i
- Whisper folder ${to} exists but the executable (${getWhisper
- The public directory was specified as "${p}", and while this
- The public directory was specified as "${p}", but this folde
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/ca240244c3f3b08b.
Report an issue: GitHub.