remotion-dev/remotion · error · Error
Drop shadow program link failed: ${log ?? '(no log)'}
Error message
Drop shadow program link failed: ${log ?? '(no log)'} What it means
Thrown by the drop-shadow runtime's linkProgram helper after LINK_STATUS failure, with the driver's program info log embedded. Linking fails when the vertex and fragment shaders disagree on varyings, exceed uniform/varying limits, or hit a driver bug. Because the drop-shadow shaders are paired as bundled constants, a link failure typically means a non-conformant driver or a per-resource limit hit.
Source
Thrown at packages/effects/src/drop-shadow/drop-shadow-runtime.ts:88
};
const linkProgram = (
gl: WebGL2RenderingContext,
vs: WebGLShader,
fs: WebGLShader,
): WebGLProgram => {
const program = gl.createProgram();
if (!program) {
throw new Error('Failed to create WebGL program');
}
gl.attachShader(program, vs);
gl.attachShader(program, fs);
gl.linkProgram(program);
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
const log = gl.getProgramInfoLog(program);
gl.deleteProgram(program);
throw new Error(`Drop shadow program link failed: ${log ?? '(no log)'}`);
}
return program;
};
const createProgram = (
gl: WebGL2RenderingContext,
vertexSource: string,
fragmentSource: string,
): WebGLProgram => {
const vs = compileShader(gl, gl.VERTEX_SHADER, vertexSource);
const fs = compileShader(gl, gl.FRAGMENT_SHADER, fragmentSource);
const program = linkProgram(gl, vs, fs);
gl.deleteShader(vs);
gl.deleteShader(fs);
return program;
};
View on GitHub (pinned to 78fe4bb3fd)
Solutions
- Read the embedded info log for the linker's complaint.
- Update GPU drivers and browser; try another device or browser.
- For headless/CI, run under SwiftShader which links conformant programs.
- If the log indicates a genuine defect in the bundled shaders, file a Remotion issue with the full log and device info.
Defensive patterns
Strategy: try-catch
Try / catch
try {
state = setupDropShadow(canvas);
} catch (err) {
if (err instanceof Error && /program link failed/i.test(err.message)) {
console.error('Driver failed to link drop-shadow program:', err.message);
// fall back to a CSS box-shadow layer
} else {
throw err;
}
} Prevention
- Include the embedded info log when reporting driver/linker issues.
- Test on actual target hardware early.
- Use a conformant software renderer in CI/headless.
- Keep GPU drivers current.
When it happens
Trigger: One of the four drop-shadow programs fails to link on a device whose driver mishandles the uniform/varying set, or whose MAX_VERTEX_UNIFORM_VECTORS / MAX_TEXTURE_IMAGE_UNITS is exceeded. Also seen on broken driver versions.
Common situations: Low-end mobile GPUs; outdated Intel/AMD driver branches; virtualized GL; remote desktop; specific Linux Mesa versions.
Related errors
- Dot grid program link failed: ${log ?? '(no log)'}
- Drop shadow shader compile failed: ${log ?? '(no log)'}
- Program link failed: ${log ?? '(no log)'}
- Burlap program link failed: ${log ?? '(no log)'}
- Dot grid shader compile failed: ${log ?? '(no log)'}
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/6069cd4bb3a978fa.
Report an issue: GitHub.