Advanced5 min read

Long-running and async runs

Pause runs for hours or days and resume automatically via callback, schedule, or snooze.

Some work can't finish in one sitting — it waits on a data room, a customer reply, or a nightly export. Forge runs can pause for hours or days and resume automatically, with their full state saved between steps. This guide covers the three ways a run resumes.

Wait for an external callback

Give an agent the wait_for_callback tool. When the agent reaches it, the run pauses (waiting_for_callback) and a one-time callback URL appears on the run timeline. Have your external system POST any JSON to that URL when the data is ready:

curl -X POST https://forge.shanova.se/api/callback/<token> \
  -H "Content-Type: application/json" \
  -d '{ "data_room": "ready", "documents": 42 }'

The run resumes automatically and the payload is injected into the waiting agent's context. Set a longer window with the tool's expires_in_hours (up to 30 days).

Snooze and scheduled resume

On any paused run, open the run page and use Snooze (1h / 1d / 3d / 7d). Forge sets a wake-up time and resumes the run automatically when it arrives — no need to keep the tab open.

Resume now

Don't want to wait? Click Resume now on the paused run and it continues immediately from where it left off — completed agents are kept, only the remaining agents run.

Tip:Paused runs appear with a Paused filter in the runs list, showing the reason and the scheduled auto-resume time. Your run data is always safe while it waits.
Long-running and async runs — Forge Guides — Forge