Hi @sagi.l
imho that is a normal behavior.
Within a single execution step, state only crosses a subgraph boundary via what your node returns. When you goto a node in the parent with Command.PARENT, the parent only receives the update you include in the Command(update=...) payload. The full, in‑memory subgraph state is not implicitly copied up to the parent unless it has already been persisted at a checkpoint boundary (e.g., after an interrupt/resume or at the end of a step).
In your “finish” tool, include the full messages (and any other needed fields like elements) in Command.update before goto to the parent, or split the logic so the step ends (creating a checkpoint) before issuing the handoff.
btw, if you shared your graph, it would be easier to understand what actually happens there ![]()