remotion-dev/remotion · error · Error
Radial progressive blur framebuffer incomplete: 0x${status.t
Error message
Radial progressive blur framebuffer incomplete: 0x${status.toString(16)} What it means
After attaching the intermediate RGBA texture to the framebuffer, the effect calls gl.checkFramebufferStatus. If the status is not FRAMEBUFFER_COMPLETE, the effect throws with the hexadecimal status code. Common status codes include 0x8CD6 (incomplete attachment) and 0x8CDB (unsupported).
Source
Thrown at packages/effects/src/radial-progressive-blur/radial-progressive-blur-runtime.ts:211
0,
gl.RGBA,
gl.UNSIGNED_BYTE,
null,
);
gl.bindTexture(gl.TEXTURE_2D, null);
gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
gl.framebufferTexture2D(
gl.FRAMEBUFFER,
gl.COLOR_ATTACHMENT0,
gl.TEXTURE_2D,
textureIntermediate,
0,
);
const status = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
if (status !== gl.FRAMEBUFFER_COMPLETE) {
throw new Error(
`Radial progressive blur framebuffer incomplete: 0x${status.toString(16)}`,
);
}
return {
gl,
programHorizontal,
programVertical,
vao,
vbo,
textureSource,
textureIntermediate,
framebuffer,
horizontal: getUniforms(gl, programHorizontal),
vertical: getUniforms(gl, programVertical),
};
};
View on GitHub (pinned to 78fe4bb3fd)
Solutions
- Ensure the target element has non-zero width and height before calling the effect
- Check the hex status code: 0x8CD6 = incomplete attachment, 0x8CDD = missing attachment, 0x8CDB = unsupported, 0x8CD7 = dimensions mismatch
- Update GPU drivers if the RGBA8 format should be renderable but the driver rejects it
- Report the status code and driver info to the Remotion team
Defensive patterns
Strategy: validation
Validate before calling
const targetWidth = canvas.width;
const targetHeight = canvas.height;
if (targetWidth < 1 || targetHeight < 1) {
throw new Error('Target canvas must have non-zero dimensions before applying radialProgressiveBlur');
} Try / catch
try {
setupRadialProgressiveBlur(gl, canvas);
} catch (err) {
if (err instanceof Error && err.message.includes('framebuffer incomplete')) {
console.error('Framebuffer incomplete. Check canvas dimensions and texture format:', err.message);
}
throw err;
} Prevention
- Ensure the target canvas/element has non-zero width and height before applying the effect
- Check framebuffer status codes: 0x8CD6 = incomplete attachment, 0x8CDB = unsupported
- Test on the target GPU to confirm RGBA8 render target support
When it happens
Trigger: The intermediate texture was allocated with zero dimensions (after the Math.max(1, ...) floor), the texture format/driver combination does not support rendering to that attachment, or the texture was deleted between creation and framebuffer check.
Common situations: Target canvas with zero width or height (collapsed element); drivers that disallow RGBA8 render targets in certain configurations; a WebGL2 context in a partially-lost state where texture allocation silently fails.
Related errors
- Failed to create WebGL framebuffer
- Failed to create WebGL framebuffer
- Glow framebuffer incomplete: 0x${status.toString(16)}
- Failed to create WebGL framebuffer
- Linear progressive blur framebuffer incomplete: 0x${status.t
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/ac88221b86a48a1b.
Report an issue: GitHub.