#2888·plantuml

[State] Transition from a nested state to its enclosing superstate does not touch the superstate border

Author: rifatsahinerCreated Sep 10, 2026Updated Sep 10, 2026
Labelstriage

Describe the bug

In a hierarchical state diagram, a transition from a nested (inner) state to its enclosing superstate does not terminate on the superstate's border. The arrow ends in empty space inside the composite, at an arbitrary interior point.

UML state machines require that a transition arrow touch the border of the target state. A child → super transition should therefore land on the composite's edge (re-entry of the superstate), not float inside it.

This happens with the default Graphviz layout. The same interior landing is visible with !pragma layout smetana.

To Reproduce

puml
@startuml
[*] --> Super

state Super {
  state Nested
  Nested --> Super : to super
  Nested --> Other
  state Other {
    [*] --> Leaf
    state Leaf
  }
}
@enduml

Open in PlantUML editor

Expected behavior

The to super arrow should start on Nested's border and end on Super's border.

Screenshots

Exported PNG from plantuml.com:

Nested to Super arrow ends inside Super instead of on Super's border

The to super arrowhead sits in the interior of Super (to the left of Other), not on Super's frame. It gets worse when diagram gets more complicated or there are several nested to super transitions.

Workaround

Docking the transition on an unnamed <<entryPoint>> of the superstate makes the arrow terminate on a circle. With a direction hint (-left-> / -right->) and Smetana, that circle can sit on a side of the composite. That is a workaround, not a fix: a plain Nested --> Super should already hit the composite border.