---
title: fastly_info.state
summary: null
url: >-
  https://www.fastly.com/documentation/reference/vcl/variables/miscellaneous/fastly-info-state
---

**Type:** STRING  
**Access:** read-only

**Available in:** all subroutines

State of the request, with optional suffixes describing special cases.

While this variable is available throughout the [VCL request lifecycle](https://www.fastly.com/documentation/guides/vcl/using/), it is updated as the state of the request changes.  It can be considered final in `vcl_deliver` and `vcl_log`.

States:

| Value       | Description                                                                                                                                                                                                       |
| :---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `NONE`      | No state assigned.                                                                                                                                                                                                |
| `HIT`       | The request has matched previously-cached content as a result of a cache lookup.                                                                                                                                  |
| `HITPASS`   | The cache key associated with this request has been previously marked uncacheable in `vcl_fetch`, which will trigger a PASS and prevent the resulting backend response from being cached.  Never a final state.   |
| `HIT-STALE` | The request has matched previously-cached, [stale](https://www.fastly.com/documentation/guides/concepts/edge-state/cache/stale/) content as a result of a backend failure or a `return(deliver_stale)` statement. |
| `HIT-SYNTH` | The request has transited `vcl_error` as a result of a network error during a backend fetch or an explicit `error` statement, and a `synthetic` response has been created with a non-error status code.           |
| `MISS`      | The request has been or will be sent to a backend server as a result of failing to find suitable content in cache.                                                                                                |
| `PASS`      | The request has been or will be sent to a backend server as a result of an explicit `return(pass)` or because a hit-for-pass object was found in cache.                                                           |
| `UPGRADE`   | The request has been or will be handed off as a WebSocket connection.                                                                                                                                             |

Error states:

| Value              | Description                                                                                           |
| :----------------- | :---------------------------------------------------------------------------------------------------- |
| `BG-ERROR-[state]` | An error occurred during a background fetch in `[state]` (possible options: `PASS`, `RECV`, `ERROR`). |
| `ERROR`            | Transited `vcl_error` with a response code of 400 or higher.                                          |
| `ERROR-LOSTHDR`    | Fastly ran out of memory during header processing.                                                    |

Suffixes:

| Value      | Description                                                                                                                                                                                                                            |
| :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-CLUSTER` | The request has been transferred to a second cache node due to [clustering](https://www.fastly.com/documentation/guides/vcl/clustering/).                                                                                              |
| `-REFRESH` | A backend fetch returned a `304 Not Modified` response, and Fastly is therefore able to serve cached content that would otherwise be considered [stale](https://www.fastly.com/documentation/guides/concepts/edge-state/cache/stale/). |
| `-WAIT`    | This request was [collapsed](https://www.fastly.com/documentation/guides/concepts/edge-state/cache/request-collapsing/) with other requests and placed in a queue because a compatible request was already in progress.                |
