remotion-dev/remotion · error · Error
Non-semantic version provided. Only releases of Whisper.cpp
Error message
Non-semantic version provided. Only releases of Whisper.cpp are supported on Windows (e.g., 1.5.4). Provided version:
${version}. See https://www.remotion.dev/docs/install-whisper-cpp/install-whisper-cpp#version for more information. What it means
Thrown by the Windows install path of `installWhisperCpu` when the `version` argument does not look like a semantic version. On Windows, Remotion only ships pre-built binaries for tagged whisper.cpp releases, so a version like 'latest', a branch name, or a commit hash is rejected. The validation regex is `/^[\d]{1}\.[\d]{1,2}\./`, requiring a leading `X.Y.` such as `1.5.5`.
Source
Thrown at packages/install-whisper-cpp/src/install-whisper-cpp.ts:65
resolve();
});
});
};
const installForWindows = async ({
version,
to,
printOutput,
signal,
}: {
version: string;
to: string;
printOutput: boolean;
signal: AbortSignal | null;
}) => {
if (!getIsSemVer(version)) {
throw new Error(`Non-semantic version provided. Only releases of Whisper.cpp are supported on Windows (e.g., 1.5.4). Provided version:
${version}. See https://www.remotion.dev/docs/install-whisper-cpp/install-whisper-cpp#version for more information.`);
}
const url =
version === '1.5.5'
? 'https://remotion-ffmpeg-binaries.s3.eu-central-1.amazonaws.com/whisper-bin-x64-1-5-5.zip'
: `https://github.com/ggerganov/whisper.cpp/releases/download/v${version}/whisper-bin-x64.zip`;
const filePath = path.join(process.cwd(), 'whisper-bin-x64.zip');
const fileStream = fs.createWriteStream(filePath);
await downloadFile({
fileStream,
printOutput,
url,
onProgress: undefined,
signal,
});View on GitHub (pinned to 78fe4bb3fd)
Solutions
- Pass a release version in `X.Y.Z` form, e.g. `installWhisperCpu({version: '1.7.0'})`.
- Drop any leading 'v' so the string starts with a digit.
- Check the whisper.cpp releases page for the latest tag Remotion supports.
Example fix
// before
installWhisperCpu({version: 'v1.5.5', to: 'whisper'});
// after
installWhisperCpu({version: '1.5.5', to: 'whisper'}); Defensive patterns
Strategy: validation
Validate before calling
function isReleaseVersion(v: string): boolean {
return /^\d{1}\.\d{1,2}\./.test(v);
}
if (process.platform === 'win32' && !isReleaseVersion(version)) {
throw new Error('On Windows, pass a whisper.cpp release version like 1.7.0');
} Type guard
function isWindowsReleaseVersion(v: string): boolean {
return /^\d{1}\.\d{1,2}\./.test(v);
} Prevention
- On Windows, always pass a tagged release version (e.g. '1.7.0'), not 'latest' or a commit hash.
- Strip a leading 'v' from version strings before passing them.
- Pin the version in config rather than deriving it from a Git ref.
When it happens
Trigger: Calling `installWhisperCpu({version: 'latest'})`, `installWhisperCpu({version: 'master'})`, or a commit SHA on Windows. Also fails for malformed strings like 'v1.5.5' (leading 'v') because the regex expects a digit first.
Common situations: Copying a version format from macOS/Linux instructions that allow building from source; passing a Git ref instead of a release tag; including a leading 'v' prefix.
Related errors
- The `filename` must match "/^([0-9a-zA-Z-!_.*'()/:&$@=;+,?]+
- Invalid whisper model ${model}. Available: ${models.join(',
- Emoji ${emoji} not found. Available emojis: ${emojis.map((e)
- The start and end values must be of the same type. Start val
- Non-animatable values cannot be interpolated. Start value: $
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/416fb894d78dcdcd.
Report an issue: GitHub.