{"record":{"id":"5e4d4582c377e690","repo":"remotion-dev/remotion","slug":"linear-gradient-tint-program-link-failed-log","errorCode":null,"errorMessage":"Linear gradient tint program link failed: ${log ?? '(no log)'}","messagePattern":"Linear gradient tint program link failed: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"critical","filePath":"packages/effects/src/linear-gradient-tint.ts","lineNumber":244,"sourceCode":"\nconst createProgram = (gl: WebGL2RenderingContext): WebGLProgram => {\n\tconst vs = compileShader(gl, gl.VERTEX_SHADER, VERTEX_SHADER);\n\tconst fs = compileShader(gl, gl.FRAGMENT_SHADER, FRAGMENT_SHADER);\n\tconst program = gl.createProgram();\n\tif (!program) {\n\t\tthrow new Error('Failed to create WebGL program');\n\t}\n\n\tgl.attachShader(program, vs);\n\tgl.attachShader(program, fs);\n\tgl.linkProgram(program);\n\tgl.deleteShader(vs);\n\tgl.deleteShader(fs);\n\n\tif (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n\t\tconst log = gl.getProgramInfoLog(program);\n\t\tgl.deleteProgram(program);\n\t\tthrow new Error(\n\t\t\t`Linear gradient tint program link failed: ${log ?? '(no log)'}`,\n\t\t);\n\t}\n\n\treturn program;\n};\n\nconst createRgbaTexture = (gl: WebGL2RenderingContext): WebGLTexture => {\n\tconst texture = gl.createTexture();\n\tif (!texture) {\n\t\tthrow new Error('Failed to create WebGL texture');\n\t}\n\n\tgl.bindTexture(gl.TEXTURE_2D, texture);\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);","sourceCodeStart":226,"sourceCodeEnd":262,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/effects/src/linear-gradient-tint.ts#L226-L262","documentation":"Thrown when `gl.linkProgram` reports LINK_STATUS false for linearGradientTint, with the driver info log appended. Both attached shaders compiled; a link failure on the bundled, tested pair implies a driver linker bug or context corruption.","triggerScenarios":"Non-conformant driver's stricter linker rejecting a valid program; context loss corrupting link state; symbol/precision mismatch only on a specific stack.","commonSituations":"Older mobile/SwiftShader; virtualized GPU; rare regressions after driver/Chromium updates; reproducible only on certain render workers.","solutions":["Inspect `${log}` to localize the linker complaint.","Reproduce on the affected driver; update drivers or swap the Chromium build.","Dispose/re-setup on `webglcontextrestored`.","File a @remotion/effects issue with log + driver string if it reproduces on current Chrome."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  setupLinearGradientTint(canvas);\n} catch (err) {\n  reportShaderIssue(String(err?.message ?? ''));\n  renderWithoutEffect();\n}","preventionTips":["Reproduce on the target driver before assuming a code fault.","Pin a tested Chromium build on workers.","Capture the linker log when surfacing the error."],"tags":["webgl","linear-gradient-tint","effects","gpu","shader"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}