toeverything/AFFiNE · error · Error
Preview renderer returned invalid SVG.
Error message
Preview renderer returned invalid SVG.
What it means
renderMermaidSvg throws when sanitizing the backend-rendered Mermaid SVG yields an empty string, meaning the sanitizer rejected the markup and no safe preview SVG can be returned to the code-block renderer.
Source
Thrown at packages/frontend/core/src/modules/code-block-preview-renderer/bridge.ts:26
} from '@affine/core/modules/mermaid/renderer';
import type {
TypstRenderRequest,
TypstRenderResult,
} from '@affine/core/modules/typst/renderer';
import { sanitizeSvg as sanitizeSvgDocument } from '@blocksuite/affine-shared/utils';
export function sanitizeSvg(svg: string): string {
return sanitizeSvgDocument(svg);
}
export async function renderMermaidSvg(
request: MermaidRenderRequest
): Promise<MermaidRenderResult> {
const rendered = await renderMermaidSvgBackend(request);
const sanitizedSvg = sanitizeSvg(rendered.svg);
if (!sanitizedSvg) {
throw new Error('Preview renderer returned invalid SVG.');
}
return { svg: sanitizedSvg };
}
export async function renderTypstSvg(
request: TypstRenderRequest
): Promise<TypstRenderResult> {
const rendered = await renderTypstSvgBackend(request);
const sanitizedSvg = sanitizeSvgDocument(rendered.svg);
if (!sanitizedSvg) {
throw new Error('Preview renderer returned invalid SVG.');
}
return { svg: sanitizedSvg };
}
View on GitHub (pinned to b4c8548c09)
Solutions
- Check the preview renderer output; ensure it returns well-formed SVG.
- Update the renderer or the preview handler to produce valid markup.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown in renderMermaidSvg when the backend-rendered SVG is empty after sanitizeSvg processing, so no valid SVG preview can be returned.
Common situations: Occurs when a Mermaid (or code block) preview fails to render or the SVG is stripped by sanitization. Check the diagram syntax and retry rendering.
AI-assisted analysis of toeverything/AFFiNE@b4c8548c09 (2026-08-18).
Data as JSON: /api/errors/42f8e31392de65e6.
Report an issue: GitHub.