zed-industries/zed · error
can't render at a zero size
Error message
can't render at a zero size
What it means
Guard in SvgRenderer::render_alpha_mask: the requested RenderSvgParams.size is zero (0×0), and an SVG cannot be rasterized into a zero-sized alpha mask/texture. Fires when a caller passes a degenerate element size to the SVG renderer.
Source
Thrown at crates/gpui/src/svg_renderer.rs:238
Ok(Arc::new(image))
}
/// Renders the given bytes into an image buffer.
pub fn render_single_frame(
&self,
bytes: &[u8],
scale_factor: f32,
) -> Result<Arc<RenderImage>, usvg::Error> {
let svg = self.parse_svg(bytes)?;
self.render_parsed(&svg, scale_factor)
}
pub(crate) fn render_alpha_mask(
&self,
params: &RenderSvgParams,
bytes: Option<&[u8]>,
) -> Result<Option<(Size<DevicePixels>, Vec<u8>)>> {
anyhow::ensure!(!params.size.is_zero(), "can't render at a zero size");
let render_pixmap = |bytes| {
let pixmap = self.render_pixmap(bytes, SvgSize::Size(params.size))?;
// Convert the pixmap's pixels into an alpha mask.
let size = Size::new(
DevicePixels(pixmap.width() as i32),
DevicePixels(pixmap.height() as i32),
);
let alpha_mask = pixmap
.pixels()
.iter()
.map(|p| p.alpha())
.collect::<Vec<_>>();
Ok(Some((size, alpha_mask)))
};
View on GitHub (pinned to f4178619ac)
Solutions
- Ensure the element requesting the SVG has a non-zero layout size before rendering
- Check for zero-sized icons/badges in styles (width/height of 0)
- Skip rendering when the computed size is zero instead of invoking the SVG renderer
- If it happens inside a component, guard its render path with a minimum size
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/gpui/src/svg_renderer.rs:238 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20).
Data as JSON: /api/errors/727f9f9b7100b063.
Report an issue: GitHub.