{"record":{"id":"59d58de785392b91","repo":"remotion-dev/remotion","slug":"support-detailedreason-59d58d","errorCode":null,"errorMessage":"${support.detailedReason}","messagePattern":"\\$\\{support\\.detailedReason\\}","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/studio/src/components/RenderQueue/VideoMattingQueueProcessor.tsx","lineNumber":35,"sourceCode":"\t\tmarkVideoMattingJobFailed,\n\t\tsetProcessVideoMattingJobCallback,\n\t\tupdateVideoMattingJobProgress,\n\t} = useContext(RenderQueueContext);\n\n\tconst processJob = useCallback(\n\t\tasync (job: VideoMattingJob) => {\n\t\t\tlet outputs: Awaited<ReturnType<typeof separateVideoLayers>> | null =\n\t\t\t\tnull;\n\t\t\tlet processingError: Error | null = null;\n\t\t\ttry {\n\t\t\t\tupdateVideoMattingJobProgress(job.id, {\n\t\t\t\t\tdetail: null,\n\t\t\t\t\tmessage: 'Checking WebGPU support...',\n\t\t\t\t\tvalue: 0,\n\t\t\t\t});\n\t\t\t\tconst support = await canUseVideoMatting({model: job.model});\n\t\t\t\tif (!support.supported) {\n\t\t\t\t\tthrow new Error(support.detailedReason);\n\t\t\t\t}\n\n\t\t\t\tawait loadModelForJob({\n\t\t\t\t\tmodel: job.model,\n\t\t\t\t\tprogressStart: 0,\n\t\t\t\t\tprogressSpan: 0.2,\n\t\t\t\t\tisModelCached: (model) => isVideoMattingModelCached({model}),\n\t\t\t\t\tloadModel: (model, onProgress) =>\n\t\t\t\t\t\tloadVideoMattingModel({\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\tonProgress: (progress) => onProgress(progress.progress),\n\t\t\t\t\t\t}),\n\t\t\t\t\tupdateProgress: (progress) =>\n\t\t\t\t\t\tupdateVideoMattingJobProgress(job.id, {\n\t\t\t\t\t\t\t...progress,\n\t\t\t\t\t\t\tdetail: null,\n\t\t\t\t\t\t}),\n\t\t\t\t});","sourceCodeStart":17,"sourceCodeEnd":53,"githubUrl":"https://github.com/remotion-dev/remotion/blob/b2f4e34732f3c6c222ea029413e22dc402218cd7/packages/studio/src/components/RenderQueue/VideoMattingQueueProcessor.tsx#L17-L53","documentation":"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.","triggerScenarios":"canUseVideoMatting({model: job.model}) returns {supported: false} — no WebGPU in the browser, insufficient GPU, or the specific model not supported in the current environment.","commonSituations":"Browser without WebGPU support; older Safari; GPU-disallowed contexts; selecting a heavy model on unsupported hardware; remote/headless Studio sessions.","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"],"exampleFix":"// before\nconst support = await canUseVideoMatting({model: job.model});\nawait runMatting(job);\n// after\nconst support = await canUseVideoMatting({model: job.model});\nif (support.supported) {\n  await runMatting(job);\n} else {\n  console.warn(`Video matting unavailable: ${support.detailedReason}`);\n}","handlingStrategy":"validation","validationCode":"const support = await canUseVideoMatting({model: job.model});\nif (!support.supported) {\n  throw new Error(`Matting unavailable: ${support.detailedReason}`);\n}","typeGuard":"const mattingReady = async (model: string): Promise<boolean> => (await canUseVideoMatting({model})).supported;","tryCatchPattern":"try {\n  await runMattingJob(job);\n} catch (e) {\n  markJobFailed(job.id, (e as Error).message);\n}","preventionTips":["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"],"tags":["webgpu","video-matting","hardware","ai"],"backgroundTag":"feature-not-enabled","analyzedSha":"b2f4e34732f3c6c222ea029413e22dc402218cd7","analyzedAt":"2026-09-09T13:27:51.281Z","contentChangedAt":"2026-09-09T13:27:51.281Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}