remotion-dev/remotion · error · Error

Vibrance shader compile failed: ${log ?? '(no log)'}

Error message

Vibrance shader compile failed: ${log ?? '(no log)'}

What it means

Thrown by the vibrance effect's compileShader when the GLSL ES 3.00 shader (VERTEX_SHADER or FRAGMENT_SHADER, the latter incorporating VIBRANCE_GLSL from color-correction-shader-utils) fails to compile. The error message includes the GL info log identifying the specific GLSL error. The library deletes the failed shader before throwing.

Source

Thrown at packages/effects/src/vibrance.ts:112

}
`;

const compileShader = (
	gl: WebGL2RenderingContext,
	type: number,
	source: string,
): WebGLShader => {
	const shader = gl.createShader(type);
	if (!shader) {
		throw new Error('Failed to create vibrance shader');
	}

	gl.shaderSource(shader, source);
	gl.compileShader(shader);
	if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
		const log = gl.getShaderInfoLog(shader);
		gl.deleteShader(shader);
		throw new Error(`Vibrance shader compile failed: ${log ?? '(no log)'}`);
	}

	return shader;
};

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 vibrance shader program');
	}

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

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Update GPU drivers to the latest vendor release
  2. Check the GL info log in the error message for the specific failing GLSL line or feature
  3. Switch to a GPU/rendering environment with verified full WebGL2 support
  4. Report to @remotion/effects maintainers with GPU model, driver version, and the info log text
Defensive patterns

Strategy: try-catch

Try / catch

try {
  const state = setupVibrance(canvas);
} catch (err) {
  if (err instanceof Error && err.message.startsWith('Vibrance shader compile failed')) {
    console.error('Shader compile log:', err.message);
    throw new Error('GPU cannot compile vibrance GLSL ES 3.00 shaders. Update drivers or use a different GPU.');
  }
  throw err;
}

Prevention

When it happens

Trigger: gl.compileShader runs but gl.getShaderParameter(shader, gl.COMPILE_STATUS) returns false. The bundled vibrance GLSL (which includes the applyVibrance function from VIBRANCE_GLSL) is rejected by the GPU driver — typically due to incomplete GLSL ES 3.00 support or a driver bug with the specific color-correction math constructs.

Common situations: Old GPU drivers with incomplete WebGL2/GLSL ES 3.00 implementations; software renderers with precision limitations; driver version regressions; outdated mobile or integrated GPUs.

Related errors


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