toeverything/AFFiNE · error · Error
Mobile preview handler "${String(name)}" is unavailable.
Error message
Mobile preview handler "${String(name)}" is unavailable. What it means
getRequiredNativeHandler throws when the native (mobile) runtime provides no preview handlers or lacks the requested handler, meaning the mobile bridge cannot render this preview type (mermaid/typst).
Source
Thrown at packages/frontend/core/src/modules/code-block-preview-renderer/platform-backend.mobile.ts:9
import { getNativePreviewHandlers } from './runtime-config';
import type { PreviewRenderRequestMap, PreviewRenderResultMap } from './types';
function getRequiredNativeHandler<
Name extends keyof NonNullable<ReturnType<typeof getNativePreviewHandlers>>,
>(name: Name) {
const handler = getNativePreviewHandlers()?.[name];
if (!handler) {
throw new Error(`Mobile preview handler "${String(name)}" is unavailable.`);
}
return handler;
}
export async function renderMermaidSvgBackend(
request: PreviewRenderRequestMap['mermaid']
): Promise<PreviewRenderResultMap['mermaid']> {
return getRequiredNativeHandler('renderMermaidSvg')(request);
}
export async function renderTypstSvgBackend(
request: PreviewRenderRequestMap['typst']
): Promise<PreviewRenderResultMap['typst']> {
return getRequiredNativeHandler('renderTypstSvg')(request);
}
View on GitHub (pinned to b4c8548c09)
Solutions
- Register the mobile preview handler before requesting a preview.
- Use a supported preview type on mobile.
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown when a mobile code block preview render (mermaid or typst) is requested but the native preview handler returned by getNativePreviewHandlers is absent.
Common situations: Occurs on the mobile app when native preview capabilities are not registered or unavailable; verify the native runtime config provides the preview handlers before rendering code block previews.
AI-assisted analysis of toeverything/AFFiNE@b4c8548c09 (2026-08-18).
Data as JSON: /api/errors/8237f5fe9a3bfd07.
Report an issue: GitHub.