Relationships
#2802 Telemetry bridge drops a parent step's invocation when a nested workflow step has the same job and step names
Opened by hammz · 9/30/2026· Shipped 9/30/2026
Summary
The libswamp telemetry bridge (src/libswamp/workflows/telemetry_bridge.ts) tracks in-flight method invocations in a map keyed on jobId and stepId only. A nested workflow step forwards its child's step events into the parent's stream, and those events carry no run identity. If a child step's job and step names match a parent step that is running concurrently (parallel jobs or steps), the child's method_executing overwrites the parent's in-flight entry: the child's step_completed records it, and the parent's own step_completed finds no entry, so the parent's invocation is never recorded.
Context
Found while triaging swamp-club#2735, which attributes nested runs to the top-level run. Fixing this needs run identity on forwarded step events (for example a runId on method_executing, step_completed and step_failed), so the bridge can key in-flight entries per run.
Steps to reproduce
- Workflow child with job main and a model_method step a.
- Workflow parent with job main containing a model_method step a and, in parallel, a workflow step running child.
- Run parent with telemetry enabled. Only one invocation for main:a is recorded instead of two.
Shipped
Click a lifecycle step above to view its details.
Sign in to post a ripple.