remotion-dev/remotion · error
${support.detailedReason}
Error message
${support.detailedReason} What it means
The video matting queue verifies WebGPU support (including the selected model) via canUseVideoMatting({model}) before loading the model. If unsupported, support.detailedReason is thrown as the job's error.
Source
Thrown at packages/studio/src/components/RenderQueue/VideoMattingQueueProcessor.tsx:35
markVideoMattingJobFailed,
setProcessVideoMattingJobCallback,
updateVideoMattingJobProgress,
} = useContext(RenderQueueContext);
const processJob = useCallback(
async (job: VideoMattingJob) => {
let outputs: Awaited<ReturnType<typeof separateVideoLayers>> | null =
null;
let processingError: Error | null = null;
try {
updateVideoMattingJobProgress(job.id, {
detail: null,
message: 'Checking WebGPU support...',
value: 0,
});
const support = await canUseVideoMatting({model: job.model});
if (!support.supported) {
throw new Error(support.detailedReason);
}
await loadModelForJob({
model: job.model,
progressStart: 0,
progressSpan: 0.2,
isModelCached: (model) => isVideoMattingModelCached({model}),
loadModel: (model, onProgress) =>
loadVideoMattingModel({
model,
onProgress: (progress) => onProgress(progress.progress),
}),
updateProgress: (progress) =>
updateVideoMattingJobProgress(job.id, {
...progress,
detail: null,
}),
});View on GitHub (pinned to b2f4e34732)
Solutions
- Open the Studio in a WebGPU-capable browser (latest Chrome/Edge) with hardware acceleration enabled
- Read detailedReason to identify whether it is a browser, driver, or model-specific limitation and address it
- Choose a smaller/supported matting model for the available hardware
- Update GPU drivers / unblock WebGPU in browser settings
Example fix
// before
const support = await canUseVideoMatting({model: job.model});
await runMatting(job);
// after
const support = await canUseVideoMatting({model: job.model});
if (support.supported) {
await runMatting(job);
} else {
console.warn(`Video matting unavailable: ${support.detailedReason}`);
} Defensive patterns
Strategy: validation
Validate before calling
const support = await canUseVideoMatting({model: job.model});
if (!support.supported) {
throw new Error(`Matting unavailable: ${support.detailedReason}`);
} Type guard
const mattingReady = async (model: string): Promise<boolean> => (await canUseVideoMatting({model})).supported; Try / catch
try {
await runMattingJob(job);
} catch (e) {
markJobFailed(job.id, (e as Error).message);
} Prevention
- Check model + WebGPU support before queueing matting jobs
- Select models appropriate for the available GPU
- Keep browsers and GPU drivers current
- Surface detailedReason in the queue UI for quick diagnosis
When it happens
Trigger: canUseVideoMatting({model: job.model}) returns {supported: false} — no WebGPU in the browser, insufficient GPU, or the specific model not supported in the current environment.
Common situations: Browser without WebGPU support; older Safari; GPU-disallowed contexts; selecting a heavy model on unsupported hardware; remote/headless Studio sessions.
Related errors
- ${support.detailedReason}
- WebGPU is not available in this environment for canvas effec
- WebGPU is not available in this environment
- No WebGPU adapter available
- Invalid whisper model ${model}. Available: ${models.join(',
AI-assisted analysis of remotion-dev/remotion@b2f4e34732 (2026-09-09).
Data as JSON: /api/errors/59d58de785392b91.
Report an issue: GitHub.