# Workflow Did Not Start or Is Still Waiting

> Diagnose missing runs, webhook delivery, and workflows paused on Wait or Human Review.

Use this page when no run appeared or an existing run stopped at a waiting step. Start by deciding which of those two states you have.

## Workflow did not start

First confirm whether the [Execution Log](/build/the-canvas/execution-log) contains a run for the expected time or event.

- **No run exists:** check that the workflow is **Live**. Draft allows manual runs but disables automatic triggers. For a Scheduler, also check the timezone and the next run times shown in its panel. A scheduled occurrence that did not start is not replayed later.
- **A run exists:** the trigger worked. Open the run and find the first failed, skipped, or unexpected step instead.

## A webhook delivery did not start a run

Check the sender's delivery log, then compare it with the Webhook trigger's current state:

1. Confirm the workflow is **Live**. A Draft webhook reports that the workflow needs publishing.
2. Copy the current **Webhook endpoint** from the trigger. A `202 {"received": true}` confirms receipt, but it does not prove that the URL belongs to the active trigger or that a run completed.
3. If signature verification is enabled, confirm the sender uses the configured secret and header. An unsigned or wrongly signed request is rejected before a run exists.
4. Check the request size. A payload over 1 MB is refused before a run starts.
5. Send one controlled request and look for it in the trigger's **Executions** tab.

A `202` confirms receipt, not completion. Use the Execution Log to see whether the resulting run succeeded.

## The run is waiting

Open the waiting step's **Executions** tab and the surrounding run. A Wait step records its continuation details before the workflow pauses; later steps do not run until the wait resumes or expires. For Human Review, check the review request and its configured outcome paths.

For **Wait on webhook call** or **Wait on form submitted**, confirm that the caller received the `resumeUrl` or `formUrl` created for this run. Each address belongs to one run and cannot be reused after that run continues. The workflow must still be Live when the response arrives.

If the step has an expiry, check whether its **Expired** branch is connected. Without that branch, expiry follows the step's error path. A timeout of `0` or a blank timeout waits without an expiry.

## What's Next?

- Trace an existing run with [Debug a Run](/reference/debug-a-run).
- Choose the correct trigger in [Triggers and Actions](/build/core-concepts/triggers-and-actions).
- Inspect completed and active runs in the [Execution Log](/build/the-canvas/execution-log).
