{"record":{"id":"2fb03055d91efdef","repo":"remotion-dev/remotion","slug":"no-src-passed-2fb030","errorCode":null,"errorMessage":"No src passed","messagePattern":"No src passed","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/core/src/video/VideoForRendering.tsx","lineNumber":109,"sourceCode":"\t\t\tsequenceContext?.durationInFrames,\n\t\t],\n\t);\n\n\tif (!videoConfig) {\n\t\tthrow new Error('No video config found');\n\t}\n\n\tconst volume = evaluateVolume({\n\t\tvolume: volumeProp,\n\t\tframe: volumePropsFrame,\n\t\tmediaVolume: 1,\n\t});\n\n\twarnAboutTooHighVolume(volume);\n\n\tuseEffect(() => {\n\t\tif (!props.src) {\n\t\t\tthrow new Error('No src passed');\n\t\t}\n\n\t\tif (props.muted) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (volume <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!window.remotion_audioEnabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tregisterRenderAsset({\n\t\t\ttype: 'video',\n\t\t\tsrc: getAbsoluteSrc(props.src),\n\t\t\tid,","sourceCodeStart":91,"sourceCodeEnd":127,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/core/src/video/VideoForRendering.tsx#L91-L127","documentation":"`VideoForRendering` throws inside its `useEffect` if `props.src` is falsy, because audio asset registration and frame seeking both require a source URL. The throw happens after mount, during the effect run.","triggerScenarios":"Rendering `<Video>` without a `src`, or with `src={undefined}` / `src={''}` during a server render.","commonSituations":"Conditional src that resolves late, or destructuring an asset payload that omits the URL.","solutions":["Always pass a non-empty `src` string to `<Video>`.","Conditionally mount: `{url && <Video src={url} />}`.","Use static typing to make `src` required at the call site."],"exampleFix":"// before\n<Video src={maybeUrl} />\n// after\n{maybeUrl && <Video src={maybeUrl} />}","handlingStrategy":"type-guard","validationCode":"if (!src || typeof src !== 'string') {\n  return null;\n}","typeGuard":"const hasSrc = (p: {src?: unknown}): p is {src: string} => typeof p.src === 'string' && p.src.length > 0;","tryCatchPattern":null,"preventionTips":["Make `src` a required string in component prop types.","Conditionally mount `<Video>` only when src is truthy.","Use `staticFile()` for local assets to guarantee a string."],"tags":["video","src","rendering","validation"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}