You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Galaxy/Architecture show "layout unavailable: /api/layout answered with HTTP 500: {"error":"JSON parse failed"}".
Expected: the graph is drawn.
The failure is intermittent: cbm-daemon.log has 102 lines of GET /api/layout status=500 response_bytes=29, interleaved with 200 responses (~266 KB). In the log, the oldest 500s appear before the first start of 0.12.1, so they seem to also happen with 0.11.0 (the log has no timestamps, so I can't confirm it).
Two older indexes of other projects open fine in the same browser. The UI log also repeats "THREE.WebGLRenderer: Context Lost".
Reproduction
I could NOT reproduce it on public code yet. It happens on a private Python project (cannot be shared): mode full, 1644 nodes, 4497 edges, 658 Section nodes from 71 .md files, MENTIONS and REFERENCES_FILE edges.
Actual: "layout unavailable" (HTTP 500 JSON parse failed). Expected: the graph is drawn.
I can try to reproduce with a public repository with many .md files if that helps.
Fixed by #2913, merged in 822e7fc. Layout text that is not valid UTF-8 (for example a heading saved in a non-UTF-8 encoding) made /api/layout fail its own JSON re-read. Invalid bytes are now replaced with U+FFFD, so Galaxy and Architecture draw the graph and show the replacement character where the source had broken bytes. Thank you, @jflorianar, for the detailed report - the daemon log counts and the note about the Section nodes from your Markdown files pointed straight at the cause. It will be part of the next release; if you still see "layout unavailable" after updating, please reopen with the new daemon log lines.
Activity
mvanhorn commentedon Nov 4, 2026
Implemented in #2913.
DeusData commentedon Nov 9, 2026
Fixed by #2913, merged in 822e7fc. Layout text that is not valid UTF-8 (for example a heading saved in a non-UTF-8 encoding) made /api/layout fail its own JSON re-read. Invalid bytes are now replaced with U+FFFD, so Galaxy and Architecture draw the graph and show the replacement character where the source had broken bytes. Thank you, @jflorianar, for the detailed report - the daemon log counts and the note about the Section nodes from your Markdown files pointed straight at the cause. It will be part of the next release; if you still see "layout unavailable" after updating, please reopen with the new daemon log lines.
fix(ui): emit parseable layout JSON for malformed UTF-8
fix(ui): emit parseable layout JSON for malformed UTF-8
fix(pipeline): keep surfaces and unresolved-call capture on non-UTF-8…