remotion-dev/remotion · error · Error
Whisper folder ${to} exists but the executable (${getWhisper
Error message
Whisper folder ${to} exists but the executable (${getWhisperExecutablePath(to, version)}) is missing. Delete ${to} and try again. What it means
Thrown by `installWhisperCpu` when the target install folder already exists but the whisper.cpp executable is not present inside it. This indicates a partial or broken previous install. Like the model-size error (1053), it only throws when `printOutput` is true (the default); with `printOutput: false` it returns `{alreadyExisted: false}` and re-installs.
Source
Thrown at packages/install-whisper-cpp/src/install-whisper-cpp.ts:179
};
export const installWhisperCpp = async ({
version,
to,
printOutput = true,
signal,
}: {
version: string;
to: string;
signal?: AbortSignal | null;
printOutput?: boolean;
}): Promise<{
alreadyExisted: boolean;
}> => {
if (existsSync(to)) {
if (!existsSync(getWhisperExecutablePath(to, version))) {
if (printOutput) {
throw new Error(
`Whisper folder ${to} exists but the executable (${getWhisperExecutablePath(
to,
version,
)}) is missing. Delete ${to} and try again.`,
);
}
return Promise.resolve({alreadyExisted: false});
}
if (printOutput) {
console.log(`Whisper already exists at ${to}`);
}
return Promise.resolve({alreadyExisted: true});
}
if (process.platform === 'darwin' || process.platform === 'linux') {View on GitHub (pinned to 78fe4bb3fd)
Solutions
- Delete the folder named in the message and re-run `installWhisperCpu`.
- Programmatically, pass `printOutput: false` so a missing executable triggers an automatic re-install.
- On Windows, whitelist the whisper folder in your antivirus if it keeps removing the binary.
Example fix
// before
installWhisperCpu({version: '1.7.0', to: 'whisper'});
// after (auto-recover)
installWhisperCpu({
version: '1.7.0',
to: 'whisper',
printOutput: false,
}); Defensive patterns
Strategy: validation
Validate before calling
import {existsSync} from 'fs';
function whisperInstallIsComplete(to: string, version: string): boolean {
return existsSync(to) && existsSync(getWhisperExecutablePath(to, version));
}
if (!whisperInstallIsComplete(to, version)) {
fs.rmSync(to, {recursive: true, force: true});
} Try / catch
try {
await installWhisperCpu({version, to});
} catch (err) {
if (/executable .* is missing/.test(String(err))) {
fs.rmSync(to, {recursive: true, force: true});
return installWhisperCpu({version, to}); // retry after cleanup
}
throw err;
} Prevention
- In CI, start from a clean whisper folder or verify the executable exists before reusing it.
- Pass printOutput: false in pipelines so a missing executable auto-triggers a re-install.
- On Windows, whitelist the whisper folder in your antivirus so it does not delete the binary.
When it happens
Trigger: A previous install was interrupted after creating the folder but before placing the binary; the executable was manually deleted; antivirus quarantined the binary. The check is `existsSync(to) && !existsSync(getWhisperExecutablePath(to, version))`.
Common situations: CI cancelled mid-install; an AV on Windows removing whisper.exe; partial extraction of the zip; switching versions leaves an incompatible folder layout.
Related errors
- Model ${model} already exists at ${filePath}, but the size i
- Unsupported platform: ${process.platform}
- Error: Model ${model} does not exist at ${modelFolder ? mode
- Could not find "react-dom" package. Did you install it?
- The public directory was specified as "${p}", and while this
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/dc97d1a34b7a116e.
Report an issue: GitHub.