# A run failed

Runs shows Failed and a reason. Find the reason below.

![Runs with one failed row: Failed at Check the order: This order has no total.](https://docs.gorunner.io/assets/img/build/runs-list-light.jpg)

A failed row says **Failed at**, the step, and the reason. To read the whole error, open the run. See [Find out why a run failed](https://docs.gorunner.io/build/why-a-run-failed).

- [“the sign-in was refused (HTTP 401)”](https://docs.gorunner.io/build/a-run-failed#sign-in-refused): The connection
- [“access was refused (HTTP 403)”](https://docs.gorunner.io/build/a-run-failed#access-refused): The connection
- [“the service answered HTTP 404”, or another code](https://docs.gorunner.io/build/a-run-failed#service-answered): A value
- [“it timed out”](https://docs.gorunner.io/build/a-run-failed#timed-out): Time
- [“the service asked to slow down”](https://docs.gorunner.io/build/a-run-failed#slow-down): Rate limit
- [“couldn’t reach the server”](https://docs.gorunner.io/build/a-run-failed#cant-reach): The address
- [“This address can’t be reached from workflows: …”](https://docs.gorunner.io/build/a-run-failed#address-blocked): The address
- [A field “is required”, or a value is empty](https://docs.gorunner.io/build/a-run-failed#field-required): A value
- [“This step returned … more than the … one step may pass on”](https://docs.gorunner.io/build/a-run-failed#too-large): Size
- [“Outcome unknown: …”](https://docs.gorunner.io/build/a-run-failed#outcome-unknown): The worker
- [“Progress unknown: …”](https://docs.gorunner.io/build/a-run-failed#progress-unknown): The worker
- [“This run’s worker stopped 3 times, so the run was stopped.”](https://docs.gorunner.io/build/a-run-failed#worker-stopped): The worker
- [An error from your Code step](https://docs.gorunner.io/build/a-run-failed#script-error): Code

## “the sign-in was refused (HTTP 401)”

**Why**

The service turned down the step’s connection: its sign-in ended, or its key or password changed.

**Fix**

1. In the sidebar, open **Connections**. The connection says **Signed out** or **Not working**.
2. Press **Sign in again**, or **Change API token…** or **Change password…**.
3. Open the run and press **Run again**.

## “access was refused (HTTP 403)”

**Why**

The account behind the connection may not do this, such as open a file it wasn’t shared.

**Fix**

1. In the service, give that account access. Or choose a connection whose account has it.
2. Open the run and press **Run again**.

## “the service answered HTTP 404”, or another code

**Why**

The service refused the request: `404` means what it asked for doesn’t exist, `400` or `422` that a value was wrong.

**Fix**

1. Open the run, select the failed step and read **Input**. Find the ID, address or value that is wrong.
2. Fix the field or its expression in the workflow, press **Test**, then **Publish**.
3. Open the run and press **Run again**.

## “it timed out”

**Why**

The step took longer than its **Timeout**, 30 seconds unless you set more. Or the service didn’t answer in time.

**Fix**

1. Select the step, open **Error handling**, and raise **Timeout**, up to 600 seconds.
2. Set **Retry on failure** for a service that is sometimes slow.
3. Open the run and press **Run again**.

**What if it says the step ran out of time (30 s)?**

A Code step stops after 30 seconds, or sooner if you set a shorter Timeout. Make the script do less, or split the work.

**What if it says the workflow’s timeout was reached?**

The whole run may work for 5 minutes. In the workflow’s **Settings**, raise **Execution timeout**, up to 3600 seconds. Time in a Delay or waiting for an approval doesn’t count.

## “the service asked to slow down”

**Why**

The service’s rate limit was reached (`429`): too many requests in a short time.

**Fix**

1. In **Error handling**, set **Retry on failure**.
2. If many runs go at once, lower them. See [Limit runs at once](https://docs.gorunner.io/build/runs-at-once).
3. Open the run and press **Run again**.

## “couldn’t reach the server”

**Why**

The address is wrong, or the server is down or doesn’t take connections from GoRunner. The full error says which, such as **the host … does not exist**.

**Fix**

1. Check the address in the step, or press **Change server…** on its connection.
2. Check the server is up and lets GoRunner in.
3. Open the run and press **Run again**.

**Self-hosted:** Outside calls may go through a proxy. See [A company proxy](https://docs.gorunner.io/self-host/company-proxy).

## “This address can’t be reached from workflows: …”

**Why**

The step called a private or internal address, or a cloud’s metadata service. Steps may call public addresses only.

**Fix**

1. Use the service’s public address.
2. Open the run and press **Run again**.

**Self-hosted:** `WORKFLOW_PRIVATE_NETWORKS` can allow named private networks. Cloud metadata is never reachable. See [Outbound access](https://docs.gorunner.io/self-host/outbound-access).

## A field “is required”, or a value is empty

**Why**

An expression found nothing, so the step got an empty field, such as **url is required.** Often an earlier step returned other names than you expected.

**Fix**

1. Open the run, select the earlier step and read its **Output**.
2. Fix the expression to match, or insert the value from the data picker. See [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).
3. Press **Test**, then **Publish**, then run it again.

## “This step returned … more than the … one step may pass on”

**Why**

A step may pass on at most 16 MB.

**Fix**

1. Return less: filter, limit or page the data in that step.

**Self-hosted:** Or raise `MAX_STEP_OUTPUT_BYTES` on the workers.

## “Outcome unknown: …”

**Why**

The worker running the run stopped while this step was running. The step changes something outside, such as an email or a new row, so it wasn’t sent again. It may or may not have been carried out.

**Fix**

1. Check the service the step calls: did the email go, or the row appear?
2. If it didn’t, open the run and press **Run again**.

## “Progress unknown: …”

**Why**

The worker running the run stopped, and the record of what it had finished was lost, for example when Redis lost its data. The run could change something outside, so it wasn’t started over.

**Fix**

1. Check the services its steps call for what was already done.
2. If nothing was, open the run and press **Run again**.

**Self-hosted:** Redis must keep its data. See [What Redis holds](https://docs.gorunner.io/self-host/own-stores#what-redis-holds).

## “This run’s worker stopped 3 times, so the run was stopped.”

**Why**

The machine running it stopped in the middle three times, for example out of memory. Each time, another worker carried on from what was finished.

**Fix**

1. Open the run and press **Run again**.

**Self-hosted:** Check the workers’ memory and logs.

## An error from your Code step

**Why**

A Code step’s error is what your script threw, word for word. It may also say it used more memory than allowed (256 MB).

**Fix**

1. Open the run, select the step, and read **Input** next to the error.
2. Fix the script, press **Test**, then **Publish**.
3. Or open the run and press **Fix with Keel**.

A run you or someone else stopped is **Cancelled**, not Failed. Its step says **Cancelled while it ran.**

## Still stuck?

Write to [GoRunner support](https://gorunner.io/contact). Send the run’s ID, from its page, and the time it failed.

Source: https://docs.gorunner.io/build/a-run-failed
