# Troubleshoot a stuck run

Source: https://www.hyperagent.com/docs/reference/runtime-limits

What to check when a run pauses, stops early, loses tool access, or fails to deliver.

A run can look stuck for several reasons. It may be waiting for approval, missing access to a tool, continuing in a delegated thread, or finished without sending a notification. Start with the [thread where the work ran](/docs/concepts/threads#where-the-work-happens). Its messages and tool activity usually show where progress stopped.

Work through the checks below before starting over. In many cases, you can fix the issue and continue in the same thread without losing completed work.

## Start with what you see [#start-with-what-you-see]

| What you see                                                                                                                      | What to check                            | What to do next                                                                                        |
| --------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| The run is waiting                                                                                                                | An approval card or unanswered question  | Approve the action, adjust the request, or answer the question                                         |
| A [tool or integration](/docs/concepts/tools-and-integrations) failed                                                             | The last tool message in the thread      | Reconnect the integration, restore access, then ask the agent to retry that step                       |
| A [delegated task](/docs/concepts/agents/agent-delegation) stopped                                                                | The linked child thread                  | Open it and check for an approval request, missing context, or a tool error                            |
| The run ended before finishing                                                                                                    | The last completed step                  | Ask the agent to summarize what is done and continue only the remaining work                           |
| A [schedule](/docs/concepts/agents/invocations) or [Live Mode](/docs/concepts/agents/invocations/live-mode) run produced no alert | The run thread and notification settings | Confirm the run started, then check whether it completed quietly or could not deliver the notification |

## Continue without repeating completed work [#continue-without-repeating-completed-work]

When a run stops partway through, stay in the same thread and give it a short recovery prompt:

```text
Summarize what you completed, what remains, and any errors you hit.
Then continue from the last successful step.
```

If the agent no longer has a source file, decision, or instruction it needs, attach or restate that specific [thread context](/docs/concepts/threads#how-context-enters). You usually do not need to repeat the entire original brief.

Before asking the agent to post a message, update a record, or write to a
connected app again, confirm whether the first attempt succeeded. The thread's
tool activity is the best record of what completed.

## If a tool is unavailable [#if-a-tool-is-unavailable]

Check the access path from the agent to the system it needs:

1. Confirm the tool appears in [Available tools](/docs/concepts/tools-and-integrations/available-tools) and is enabled for the agent.
2. Confirm the integration is still connected in the [integration directory](/docs/integrations#connection-reference).
3. Confirm you [allowed access on the agent](/docs/concepts/tools-and-integrations#allow-access-on-the-agent).
4. For schedules and Live Mode, confirm [unattended writes](/docs/concepts/agents/invocations#automatic-invocations-and-unattended-writes) are allowed if the run needs to change an external system.
5. If the tool uses a browser session, sign in again when prompted.

After restoring access, return to the original thread and ask the agent to retry the failed step.

## If delegated work stops [#if-delegated-work-stops]

Delegated work runs in a child thread. Open that thread to see its progress instead of waiting in the parent thread.

Look for:

* An approval the child agent is waiting on
* A missing file, credential, or integration
* A brief that did not include enough context to finish independently
* A tool error that needs to be retried

Resolve the issue in the child thread, or send a more complete follow-up there. See [Agent delegation](/docs/concepts/agents/agent-delegation) for how parent and child threads work together.

## If an automated run does not deliver [#if-an-automated-run-does-not-deliver]

For schedules, Live Mode, and event-triggered runs, first find the thread created by the invocation. Then check:

* Did the run start at the expected time or event?
* Did the agent complete the work?
* Is the Slack channel, email address, or other notification destination still connected?
* Is the agent allowed to write to that destination without approval?
* Was silence an expected result? Live Mode can suppress notifications when nothing crosses the alert threshold.

Write automated prompts so each run has the context it needs and can be retried safely. See [Invocations](/docs/concepts/agents/invocations) and [Live Mode](/docs/concepts/agents/invocations/live-mode) for setup details.

## If a long thread loses context [#if-a-long-thread-loses-context]

In a long-running thread, the agent may need you to restate an older decision or attach a source again. Give it the specific missing detail and continue in the same thread. See [How long threads stay coherent](/docs/concepts/threads#how-long-threads-stay-coherent) for how Hyperagent carries context forward.

Keep instructions the agent should follow every time in its [configuration](/docs/concepts/agents#what-you-configure), a [skill](/docs/concepts/skills), or a [memory](/docs/concepts/memories#what-belongs-in-a-memory) instead of relying on one old message. For larger jobs, use clear milestones so you can see what finished and resume from a known point.

## Contact Support [#contact-support]

If the run still cannot continue, send Support:

* The thread link
* The approximate time and timezone
* How the run started: thread, Slack, schedule, Live Mode, webhook, or delegation
* A screenshot of the error or final message
* The external action you expected, if any
* What you already tried

This gives Support enough context to inspect the failed step without asking you to reproduce the entire job.
