remotion-dev/remotion · error · Error

Color correction shader link failed: ${log ?? '(no log)'}

Error message

Color correction shader link failed: ${log ?? '(no log)'}

What it means

Thrown by createProgram in the color correction effect when gl.getProgramParameter(program, LINK_STATUS) is false. Both shaders compiled, but linking them into a program failed; the driver's program info log is appended. For bundled, hand-written shaders this is normally a driver/version incompatibility rather than a parameter problem.

Source

Thrown at packages/effects/src/color-correction.ts:344

const createProgram = (gl: WebGL2RenderingContext): WebGLProgram => {
	const vertexShader = compileShader(gl, gl.VERTEX_SHADER, VERTEX_SHADER);
	const fragmentShader = compileShader(gl, gl.FRAGMENT_SHADER, FRAGMENT_SHADER);
	const program = gl.createProgram();
	if (!program) {
		throw new Error('Failed to create color correction shader program');
	}

	gl.attachShader(program, vertexShader);
	gl.attachShader(program, fragmentShader);
	gl.linkProgram(program);
	gl.deleteShader(vertexShader);
	gl.deleteShader(fragmentShader);

	if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
		const log = gl.getProgramInfoLog(program);
		gl.deleteProgram(program);
		throw new Error(
			`Color correction shader link failed: ${log ?? '(no log)'}`,
		);
	}

	return program;
};

const createTexture = (gl: WebGL2RenderingContext): WebGLTexture => {
	const texture = gl.createTexture();
	if (!texture) {
		throw new Error('Failed to create color correction texture');
	}

	gl.bindTexture(gl.TEXTURE_2D, texture);
	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Inspect the info log in the error for the exact link error (e.g. unresolved attribute/uniform).
  2. Upgrade the GPU driver and Chromium/Chrome build used to render.
  3. Move off software GL to a GPU-enabled environment.
  4. File a Remotion issue with driver, Chrome version, and the log — shaders are library-controlled.
Defensive patterns

Strategy: try-catch

Try / catch

try {
  await renderMedia({...});
} catch (err) {
  const msg = String(err);
  if (/Color correction shader link failed/i.test(msg)) {
    // link failure is driver/version-specific; report and switch environment
    throw new Error(`Color-correction program link failed. Log: ${msg}`);
  }
  throw err;
}

Prevention

When it happens

Trigger: At color-correction.ts:345 during setupColorCorrection after vertex and fragment shaders compiled and were attached. Linking failed and the info log (or '(no log)') is included in the message.

Common situations: A GL driver or Chromium version that compiles but cannot link the bundled shaders (e.g. varying/uniform mismatch exposed only by that driver), software GL with non-standard behavior, or a degraded context.

Related errors


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