{"record":{"id":"28d9b93585d7fac0","repo":"remotion-dev/remotion","slug":"the-start-time-for-inline-audio-asset-asset-id","errorCode":null,"errorMessage":"The start time for inline audio asset ${asset.id} changed from ${startTimesInSamples[filePath]} to ${startInSamples} samples","messagePattern":"The start time for inline audio asset (.+?) changed from (.+?) to (.+?) samples","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/renderer/src/assets/inline-audio-mixing.ts","lineNumber":213,"sourceCode":"\t\tconst fileDescriptor = openFiles[filePath];\n\t\ttoneFrequencies[filePath] = asset.toneFrequency;\n\n\t\tconst assetStartInVideo = asset.startInVideo ?? firstFrame;\n\t\tconst firstFrameForAsset = Math.max(assetStartInVideo, firstFrame);\n\t\tconst startInSamples = Math.max(\n\t\t\t0,\n\t\t\tMath.floor(\n\t\t\t\tcorrectFloatingPointError(\n\t\t\t\t\t((firstFrameForAsset - firstFrame) / fps - trimLeftOffset) *\n\t\t\t\t\t\tsampleRate,\n\t\t\t\t),\n\t\t\t),\n\t\t);\n\t\tif (\n\t\t\tstartTimesInSamples[filePath] !== undefined &&\n\t\t\tstartTimesInSamples[filePath] !== startInSamples\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`The start time for inline audio asset ${asset.id} changed from ${startTimesInSamples[filePath]} to ${startInSamples} samples`,\n\t\t\t);\n\t\t}\n\n\t\tstartTimesInSamples[filePath] = startInSamples;\n\n\t\tlet arr = new Int16Array(asset.audio);\n\t\tconst isFirst = asset.frame === firstFrame;\n\t\tconst isLast = asset.frame === totalNumberOfFrames + firstFrame - 1;\n\t\tconst samplesToShaveFromStart = trimLeftOffset * sampleRate;\n\t\tconst samplesToShaveFromEnd = trimRightOffset * sampleRate;\n\n\t\t// Higher tolerance is needed for floating point videos\n\t\t// Rendering https://github.com/remotion-dev/remotion/pull/5920 in native frame rate\n\t\t// could hit this case\n\n\t\tif (isFirst) {\n\t\t\tarr = arr.slice(","sourceCodeStart":195,"sourceCodeEnd":231,"githubUrl":"https://github.com/remotion-dev/remotion/blob/8f9775815716e25b2a9fd9c5511015a17624243d/packages/renderer/src/assets/inline-audio-mixing.ts#L195-L231","documentation":"finalizeFastStart retries the faststart (moov relocation) post-processing up to 3 attempts. If after all retries no output file was produced (the tool never wrote the expected file), it throws this terminal error.","triggerScenarios":"Rendering with fast start enabled when the ffmpeg/compositor faststart step exits without error but also without emitting the output file, e.g. due to disk issues, a corrupted intermediate file, or a compositor binary bug.","commonSituations":"Running out of disk space in the output directory, a broken/outdated Rust compositor binary, or concurrent renders racing over the same intermediate files.","solutions":["Free disk space and retry the render","Update Remotion so the bundled compositor/ffmpeg binaries are current","Render without fast start (disable the option) to isolate whether the faststart step is the culprit","Check that the output directory is writable and not shared by concurrent renders"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"import {promises} from 'fs';\ntry { await promises.access(outDir); } catch { /* ensure output dir exists */ }","typeGuard":null,"tryCatchPattern":"for (let i = 0; i < 3; i++) { try { return await finalizeFastStart(...); } catch (e) { if (!e.message.includes('Fast Start finalization')) throw e; await sleep(1000 * (i + 1)); } }","preventionTips":["Monitor disk space in the output directory","Keep compositor binaries updated with Remotion releases","Avoid concurrent renders sharing one output path"],"tags":["renderer","fast-start","ffmpeg","finalization"],"backgroundTag":"ffmpeg-output-missing","analyzedSha":"8f9775815716e25b2a9fd9c5511015a17624243d","analyzedAt":"2026-08-28T15:39:09.316Z","contentChangedAt":"2026-08-28T15:39:09.316Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}