{"record":{"id":"321a328b8ddb3850","repo":"remotion-dev/remotion","slug":"no-src-passed","errorCode":null,"errorMessage":"No src passed","messagePattern":"No src passed","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/core/src/audio/AudioForRendering.tsx","lineNumber":93,"sourceCode":"\t\t\tsequenceContext?.cumulatedFrom,\n\t\t\tsequenceContext?.durationInFrames,\n\t\t],\n\t);\n\n\tconst volume = evaluateVolume({\n\t\tvolume: volumeProp,\n\t\tframe: volumePropFrame,\n\t\tmediaVolume: 1,\n\t});\n\twarnAboutTooHighVolume(volume);\n\n\tuseImperativeHandle(ref, () => {\n\t\treturn audioRef.current as HTMLVideoElement;\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (!props.src) {\n\t\t\tthrow new Error('No src passed');\n\t\t}\n\n\t\tif (!window.remotion_audioEnabled) {\n\t\t\treturn;\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\tregisterRenderAsset({\n\t\t\ttype: 'audio',\n\t\t\tsrc: getAbsoluteSrc(props.src),\n\t\t\tid,","sourceCodeStart":75,"sourceCodeEnd":111,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/core/src/audio/AudioForRendering.tsx#L75-L111","documentation":"Thrown inside the render-path AudioForRendering useEffect when props.src is falsy. During server-side rendering Remotion must register a render asset for each audio tag; a missing src makes registration impossible.","triggerScenarios":"Rendering a composition that contains <Audio> with no src, or where src resolves to undefined at render time.","commonSituations":"Dynamic src that is undefined when rendering (e.g. import not bundled), conditional audio that still mounts during render, prop drilling that lost the value.","solutions":["Ensure src is a valid string before the composition renders.","Conditionally render <Audio> only when src exists.","If src is imported, confirm the bundler resolves it to a URL."],"exampleFix":"// before\n<Audio src={audioSrc} />\n\n// after\n{audioSrc ? <Audio src={audioSrc} /> : null}","handlingStrategy":"type-guard","validationCode":"if (!props.src || typeof props.src !== 'string') {\n  // skip mounting the audio component during render\n}","typeGuard":"const hasRenderAudioSrc = (v: unknown): v is string =>\n  typeof v === 'string' && v.length > 0;","tryCatchPattern":null,"preventionTips":["Ensure src resolves before render starts.","Conditionally render audio when src is confirmed present."],"tags":["audio","src","rendering","validation"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}