{"record":{"id":"ca240244c3f3b08b","repo":"remotion-dev/remotion","slug":"error-model-model-does-not-exist-at-modelfol","errorCode":null,"errorMessage":"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","messagePattern":"Error: Model (.+?) does not exist at (.+?)\\. Check out the downloadWhisperModel\\(\\) API at https://www\\.remotion\\.dev/docs/install-whisper-cpp/download-whisper-model to see how to install whisper models","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/install-whisper-cpp/src/transcribe.ts","lineNumber":158,"sourceCode":"\ttmpJSONPath: string;\n\tmodelFolder: string | null;\n\ttranslate: boolean;\n\ttokenLevelTimestamps: boolean;\n\tprintOutput: boolean;\n\ttokensPerItem: number | null;\n\tlanguage: Language | null;\n\tsplitOnWord: boolean | null;\n\tsignal: AbortSignal | null;\n\tonProgress: TranscribeOnProgress | null;\n\tflashAttention?: boolean;\n\tadditionalArgs?: AdditionalArgs;\n}): Promise<{\n\toutputPath: string;\n}> => {\n\tconst modelPath = getModelPath(modelFolder ?? whisperPath, model);\n\n\tif (!fs.existsSync(modelPath)) {\n\t\tthrow new Error(\n\t\t\t`Error: Model ${model} does not exist at ${\n\t\t\t\tmodelFolder ? modelFolder : modelPath\n\t\t\t}. Check out the downloadWhisperModel() API at https://www.remotion.dev/docs/install-whisper-cpp/download-whisper-model to see how to install whisper models`,\n\t\t);\n\t}\n\n\tconst executable = getWhisperExecutablePath(whisperPath, whisperCppVersion);\n\n\tconst args = [\n\t\t'-f',\n\t\tfileToTranscribe,\n\t\t'--output-file',\n\t\ttmpJSONPath,\n\t\t'--output-json',\n\t\ttokensPerItem ? ['--max-len', tokensPerItem] : null,\n\t\t'-ojf', // Output full JSON\n\t\ttokenLevelTimestamps ? ['--dtw', modelToDtw(model)] : null,\n\t\tmodel ? [`-m`, `${modelPath}`] : null,","sourceCodeStart":140,"sourceCodeEnd":176,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/install-whisper-cpp/src/transcribe.ts#L140-L176","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"// before\ntranscribe({model: 'base', whisperPath, audioFile, ...});\n\n// after\nawait downloadWhisperModel({model: 'base', folder: whisperPath});\ntranscribe({model: 'base', whisperPath, audioFile, ...});","handlingStrategy":"validation","validationCode":"import {existsSync} from 'fs';\nimport {getModelPath} from '@remotion/install-whisper-cpp';\n\nfunction ensureModel(model: WhisperModel, folder: string) {\n  const p = getModelPath(folder, model);\n  if (!existsSync(p)) {\n    throw new Error(`Model ${model} missing at ${p}. Call downloadWhisperModel first.`);\n  }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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."],"tags":["whisper","filesystem","ai","transcription"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}