{"record":{"id":"09c3c06193f793eb","repo":"remotion-dev/remotion","slug":"no-frame-found","errorCode":null,"errorMessage":"No frame found","messagePattern":"No frame found","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/core/src/animated-image/decode-image.ts","lineNumber":132,"sourceCode":"\t}) => {\n\t\tconst actualTimeInSec = getActualTime({\n\t\t\tdurationFound,\n\t\t\tloopBehavior,\n\t\t\ttimeInSec,\n\t\t});\n\t\tconst framesBefore = cache.filter(\n\t\t\t(c) => c.timeInSeconds <= actualTimeInSec,\n\t\t);\n\t\tconst biggestIndex = framesBefore\n\t\t\t.map((c) => c.frameIndex)\n\t\t\t.reduce((a, b) => Math.max(a, b), 0);\n\n\t\tlet i = biggestIndex;\n\t\twhile (true) {\n\t\t\tconst f = await getFrameByIndex(i);\n\t\t\ti++;\n\t\t\tif (!f.frame) {\n\t\t\t\tthrow new Error('No frame found');\n\t\t\t}\n\n\t\t\tif (!f.frame.duration) {\n\t\t\t\t// non-animated, or AVIF in firefox\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (i === selectedTrack.frameCount && durationFound === null) {\n\t\t\t\tconst duration = (f.frame.timestamp + f.frame.duration) / 1_000_000;\n\t\t\t\tdurationFound = duration;\n\t\t\t}\n\n\t\t\tif (f.timeInSeconds > actualTimeInSec || i === selectedTrack.frameCount) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// If close to end, also cache first frame for smooth wrap around","sourceCodeStart":114,"sourceCodeEnd":150,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/core/src/animated-image/decode-image.ts#L114-L150","documentation":"Thrown during animated image frame seeking when getFrameByIndex returns no frame. The decoder promised a frame at index i but returned none, indicating the image is truncated or the track frame count is inaccurate.","triggerScenarios":"Seeking to a frame index that the decoder cannot fulfill; corrupted animated image where frameCount overstates available frames.","commonSituations":"Partially downloaded or truncated GIF/WebP/AVIF; format/decoder mismatch; AVIF in Firefox where decoding paths differ.","solutions":["Re-encode the source image to ensure integrity.","Try a different animated format (e.g. convert AVIF to GIF).","Test in Chrome to isolate Firefox-specific AVIF issues."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"// Validate the image with ffprobe/imagemagick before use:\n// identify -format '%n %T' image.gif","typeGuard":null,"tryCatchPattern":"try {\n  await decodeImage({...});\n} catch (e) {\n  if (e.message === 'No frame found') {\n    // fall back to a static image\n  }\n}","preventionTips":["Re-encode animated images with a reliable tool.","Test assets in the target browser before deployment."],"tags":["image-decoder","animated-image","corruption","frame"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}