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
- Inspect the info log in the error for the exact link error (e.g. unresolved attribute/uniform).
- Upgrade the GPU driver and Chromium/Chrome build used to render.
- Move off software GL to a GPU-enabled environment.
- 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
- Pin a known-good Chromium version and keep GPU drivers updated.
- Avoid software GL for renders that use color correction.
- Capture the linker log on failure and report it to Remotion with environment details.
- Validate renders in the same environment used in production (not just local macOS).
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
- Color correction shader compile failed: ${log ?? '(no log)'}
- Color key program link failed: ${log ?? '(no log)'}
- Color key shader compile failed: ${log ?? '(no log)'}
- Failed to create WebGL shader
- Checkerboard shader compile failed: ${log ?? '(no log)'}
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/a56387debbb28463.
Report an issue: GitHub.