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

  1. Ensure the element requesting the SVG has a non-zero layout size before rendering
  2. Check for zero-sized icons/badges in styles (width/height of 0)
  3. Skip rendering when the computed size is zero instead of invoking the SVG renderer
  4. 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.