{"record":{"id":"727f9f9b7100b063","repo":"zed-industries/zed","slug":"can-t-render-at-a-zero-size","errorCode":null,"errorMessage":"can't render at a zero size","messagePattern":"can't render at a zero size","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/gpui/src/svg_renderer.rs","lineNumber":238,"sourceCode":"        Ok(Arc::new(image))\n    }\n\n    /// Renders the given bytes into an image buffer.\n    pub fn render_single_frame(\n        &self,\n        bytes: &[u8],\n        scale_factor: f32,\n    ) -> Result<Arc<RenderImage>, usvg::Error> {\n        let svg = self.parse_svg(bytes)?;\n        self.render_parsed(&svg, scale_factor)\n    }\n\n    pub(crate) fn render_alpha_mask(\n        &self,\n        params: &RenderSvgParams,\n        bytes: Option<&[u8]>,\n    ) -> Result<Option<(Size<DevicePixels>, Vec<u8>)>> {\n        anyhow::ensure!(!params.size.is_zero(), \"can't render at a zero size\");\n\n        let render_pixmap = |bytes| {\n            let pixmap = self.render_pixmap(bytes, SvgSize::Size(params.size))?;\n\n            // Convert the pixmap's pixels into an alpha mask.\n            let size = Size::new(\n                DevicePixels(pixmap.width() as i32),\n                DevicePixels(pixmap.height() as i32),\n            );\n            let alpha_mask = pixmap\n                .pixels()\n                .iter()\n                .map(|p| p.alpha())\n                .collect::<Vec<_>>();\n\n            Ok(Some((size, alpha_mask)))\n        };\n","sourceCodeStart":220,"sourceCodeEnd":256,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/gpui/src/svg_renderer.rs#L220-L256","documentation":"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.","triggerScenarios":"Thrown at crates/gpui/src/svg_renderer.rs:238 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f4178619acd0d47ea1f76a2025c42962c6d6638c","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}