The bundled PlantUML engine measures every diagram after layout and refuses to serialize one
wider or taller than a set number of points, reporting
Diagram too large for browser rendering. The engine's own limit is 8192 points — and
was 4096 before @plantuml/core 1.2026.8 — which is about forty stacked class boxes, or
seventy steps of an activity diagram. A real release runbook or domain model passes it
without trying.
It is not a limit you can talk your way around from the diagram source. scale has no effect,
because the check reads the dimensions before the scale factor is applied. skinparam dpi
has no effect either. left to right direction only swaps which of the two numbers is too
large.
So the plugin raises it, to 32768 points by default, and the
maxSvgSize option moves
it — set it higher for a diagram that still does not fit, or to 0 to remove the check
entirely. This site leaves the default in place. The pipeline below is 95 steps and lays out
at 278 × 5667 points — well past the engine's own ceiling — and renders normally. Use Fit
in the toolbar to get the whole thing on screen, the minimap to move around it, and search to
jump to a stage by name.
Release pipeline — from merge to production (waiting to render)
The ceiling applies to both dimensions, so a diagram can be perfectly short and still be
refused for being too wide. The order lifecycle below is drawn with
left to right direction, which is the natural shape for a long-running saga — and is exactly
the case where the engine's own limit bites hardest, because a wide diagram is not
unreasonable, it is just wide.
A wide diagram never breaks the page layout. The figure stays inside the content column, and
the page never grows a horizontal scrollbar: the SVG is scaled down to the column width, so
the whole diagram is on screen from the start.
The trade-off is legibility, and it is worth seeing. This one lays out at 7111 × 633 points —
an aspect ratio of about 11:1 — so fitting 7111 points into an 800-point column means showing
it at roughly 11%, a band a few dozen pixels tall in which no label is readable. Nothing is
lost, but you have to go and get it: zoom in and drag, maximize to give it the whole
window, or open the minimap to move along the diagram while staying zoomed in. Search
finds a state by name and scrolls it into view.
That is the honest shape of a very wide diagram in a documentation column, and it is a good
reason to reach for left to right direction deliberately rather than by habit.
Order lifecycle — left to right (waiting to render)
Under the engine's own ceiling, this exact diagram produces an error panel rather than a
picture. The engine reports its refusal through the same channel it uses for a syntax error,
so it arrives as a rendering failure with the measured size attached:
Diagram too large for browser rendering: 278x5667 (max 8192; override via the maxSvgSize
You can raise maxSvgSize, but 32768 points is already a lot of diagram, and one that large
is a heavy page: the SVG runs to hundreds of kilobytes and is parsed twice on the main thread
on its way in. That cost is why the default is a number rather than 0. If you reach the
limit, or the page feels slow, the levers that actually work are the ones that make the
picture smaller:
fewer nodes and edges — split one diagram into several fences;
skinparam ranksep 20 and skinparam nodesep 20 to tighten the spacing;
skinparam defaultFontSize 10 for a smaller overall box size;
hide empty members on class diagrams;
left to right direction when the content is genuinely wider than it is tall.