# Procedure runtime and troubleshooting

Procedure state is part of the conversation snapshot. Once a trigger starts a Procedure, Operade stores its current internal node and resumes from that point instead of evaluating triggers again.

## Follow runtime state

Conversation detail records `procedure_started`, `procedure_step_waiting`, and `procedure_completed`. Structured execution also records Workflow node and edge events because the authored steps compile to the same runtime engine. Find them under **[Activity](/docs/monitor/transcript-and-activity)**.

Ask and incomplete Free-form execution create a waiting point for the next customer message. Say and other automatic steps may produce several outputs in one turn. When a Procedure returns normally, the active Procedure is cleared and Agent or Workflow control continues. An End step with ending enabled closes the conversation.

## Diagnose a Procedure that does not start

Check that the current agent version contains the Procedure and that its trigger is specific. Trigger choices follow configuration order. If the model returns an unknown ID, Operade ignores it and continues with normal behavior. An already active Procedure deliberately bypasses the trigger router.

## Diagnose a failed or stuck path

Read the readiness errors for blank instructions, invalid If placement, missing Tools, missing Sub-procedures, cycles, more than 100 expanded steps, or more than 20 automatic steps. At runtime, a missing Tool or unmatched branch produces visible failure events rather than silently skipping the step.

Open conversations use their frozen version, so publishing a repair affects new conversations, not the old snapshot. Reproduce the issue in [Test chat](/docs/agents/test-chat), then compare **[Activity](/docs/monitor/transcript-and-activity)** node IDs and Tool results with the authored [step reference](/docs/procedures/steps).
