- 0 minutes to read

C4 Diagrams Troubleshooting

C4 Diagrams is part of experimental builds. To access this capability, contact your sales representative.

This page covers common questions and issues encountered when working with C4 Diagrams in Nodinite. For detailed reference material, see the linked sub-pages.


Reference Pages


Frequently Asked Questions

The Actors panel in the C4 Designer is empty — why?

The Actors panel only shows Systems that have a C4Type set to Person, InternalSystem, or ExternalSystem. Systems with the default value None are hidden from the panel.

Fix: Open Repository → Systems → edit the relevant Systems → set C4Type to the appropriate value.

See Repository Properties for C4 Diagramming for the full property reference.


The Services panel shows a Service but when I drag it, no node appears

This typically means the drag target (the lane area) was not recognized. Ensure you are dragging into a lane (the swimlane body) rather than the lane header or the canvas background outside all lanes.

If no lanes exist yet, add at least one Domain lane first ( Add Lane).


The Mermaid output shows Container(...) for all nodes — no ContainerDb or ContainerQueue

The Mermaid type (Container, ContainerDb, ContainerQueue) is determined by the Service's C4ContainerType property:

  • DatabaseContainerDb(...)
  • MessageBusContainerQueue(...)
  • All others → Container(...)

Fix: Set C4ContainerType = Database or C4ContainerType = MessageBus on the relevant Services. See Repository Properties for C4 Diagramming.


Person actors appear below the lane stack instead of above

The position of an actor is determined by where it was dragged on the canvas, not by C4Type alone. If a Person-type System was accidentally dropped below the lane area, it will appear there.

Fix: Drag the actor node above the top lane. The C4PositionHint property can pre-configure the default drop zone, but it does not force the position after the actor is placed.


The C4 Diagrams menu item is not visible in the Repository navigation

C4 Diagrams requires the Mapify module license. If the navigation item is absent, contact your Nodinite administrator to verify the Mapify license is active.

See Nodinite Licensing for guidance.


A Service appears in the wrong lane after loading the diagram

Each Service's lane position is saved automatically as part of the diagram. If the Service appears in an unexpected lane, it may have been dragged there by another user or a previous session.

Fix: Drag the Service node to the correct lane in the designer. The move writes an update to the database immediately.


The Mermaid View renders but all connectors are missing

Connectors are either drawn manually in the C4 Designer, or imported automatically from a Mermaid diagram via the Import workflow. If you used the Import workflow, connectors declared with Rel(...) or BiRel(...) in the Mermaid source are persisted automatically. If no connectors appear, either no relationships were in the source diagram, or the diagram was created manually without drawing connectors yet.

Fix (manual diagrams): Open the diagram in the designer, use the Connectors panel to draw relationships between nodes, and enter Label and Protocol values in the Properties sidebar.

Fix (imported diagrams): Re-import the Mermaid source. Ensure the source contains Rel(...) or BiRel(...) entries. Connectors that reference a boundary alias (rather than a concrete node) are skipped during import — a warning toast indicates the count of skipped connectors.


A Person actor appears grey instead of blue

Grey person actors represent external persons (Person_Ext in C4 notation). This is intentional C4 model colour coding. If the actor should be an internal person, check the C4Type property on the System.

Fix: Open Repository → Systems → edit the System → set C4Type = Person (internal, renders blue) instead of C4Type = PersonExt (external, renders grey).


How do I create a bidirectional relationship arrow?

Draw the connector in the designer as normal, then open the Properties sidebar for that connector and enable the Bidirectional toggle. The Mermaid output will emit BiRel(...) instead of Rel(...), resulting in arrows at both ends. Bidirectional relationships imported from Mermaid source (BiRel(...)) are also preserved automatically.


All my boundaries render as Container_Boundary in the Mermaid output

The boundary type is set per lane in the designer. By default every lane uses Container_Boundary (suitable for L2 Container diagrams). For L1 Context diagrams you typically want Enterprise_Boundary or System_Boundary.

Fix: In the C4 Designer, select the lane header and change Boundary Type in the Properties sidebar. Available values: Container_Boundary, System_Boundary, Enterprise_Boundary, Boundary (generic).

See Repository Properties for C4 Diagramming for the full boundary type reference.


Can I nest one boundary inside another?

Yes. In the C4 Designer, select the inner lane header and set its Parent Lane in the Properties sidebar to the outer lane. The Mermaid output will render the inner boundary as a block nested inside the outer boundary.

Can I place a System (Person or External System) inside a boundary instead of at the top level?

Yes. Drag the actor node from its current position into the target lane in the designer. Actors placed inside a lane are rendered inside that boundary block in the Mermaid output. Actors with no lane assignment remain at diagram top level.


Does changing C4ContainerType on a Service affect my BPM diagrams?

No. C4ContainerType and C4Technology are used only by C4 Diagrams. BPM, Log Views, Monitor Views, and the Integration Landscape are not affected by these properties.


Can I have the same C4 Diagram save multiple layout variants (As-Is vs To-Be)?

The As-Is / To-Be toggle in the designer toolbar marks a diagram as representing the current (As-Is) or target (To-Be) architecture. Each variant is a separate diagram in the C4 Diagram list. Create two diagrams — one marked As-Is and one marked To-Be — and give them descriptive names.


The PNG export is blank or very small

The export endpoint generates the diagram from the Mermaid output via the server-side rendering engine. A blank or very small PNG typically means the diagram has no nodes placed on canvas, or the Mermaid syntax is invalid.

Fix: Open the /mermaid URL for the diagram and verify the Mermaid markup is valid. Paste it into the Mermaid Live Editor to confirm it renders correctly.