remotion-dev/remotion · error · Error

No selected track

Error message

No selected track

What it means

Thrown when the decoded image track has no selected track. ImageDecoder.tracks.selectedTrack is null when the container advertises no default track or track selection failed, so there is nothing to decode.

Source

Thrown at packages/core/src/animated-image/create-image-decoder.ts:33

		);
	}

	const response = await fetch(resolvedSrc, {...requestInit, signal});
	const {body} = response;
	if (!body) {
		throw new Error('Got no body');
	}

	const decoder = new ImageDecoder({
		data: body,
		type: contentType ?? response.headers.get('Content-Type') ?? 'image/gif',
	});
	await Promise.all([decoder.completed, decoder.tracks.ready]);

	const {selectedTrack} = decoder.tracks;
	if (!selectedTrack) {
		decoder.close();
		throw new Error('No selected track');
	}

	return {decoder, selectedTrack};
};

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Re-export the image with a known-good tool (ffmpeg, imagemagick).
  2. Use a static image format if the asset is not actually animated.
  3. Try a different browser to rule out a decoder bug.
Defensive patterns

Strategy: fallback

Validate before calling

// Pre-validate the asset is a well-formed animated image
// using a tool such as `ffprobe` or imagemagick `identify`.

Try / catch

try {
  await createImageDecoder({...});
} catch (e) {
  if (e.message === 'No selected track') {
    // fall back to a static image
  }
}

Prevention

When it happens

Trigger: Decoding a malformed or zero-track animated image, or a format variant where the browser cannot auto-select a track.

Common situations: Corrupted GIF/WebP/AVIF, non-animated image passed through the animated path, browser-specific track selection quirks.

Related errors


AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12). Data as JSON: /api/errors/6d65c9a94438d125. Report an issue: GitHub.