---
name: "X-Up-Fail-Mode"
area: "API"
kind: "HTTP header"
parent: "up.protocol module"
url: "https://unpoly.com/api/X-Up-Fail-Mode"
---
<nav aria-label="Unpoly docs">[All docs](https://unpoly.com/index.md) · [up.protocol module](https://unpoly.com/api/up.protocol.md)</nav>

# X-Up-Fail-Mode

This request header contains the [mode](https://unpoly.com/api/up.layer.mode.md) of the layer that Unpoly updates when the server sends an [error response](https://unpoly.com/learn/error-responses.md).

An error response has a status code other than 2xx, but still contains HTML.

Server-side code is free to render different HTML for different modes. For example, you might prefer to not render a site navigation for overlays.

## Example {#example}

Assume we have the following form in a drawer overlay. The form targets the root layer:

```html
<!-- Form within an overlay -->
<form action="/submit" up-submit up-layer="root">
  ...
</form>
```

Because [failed form submissions update the `<form>` element](https://unpoly.com/learn/validation.md#changing-how-validation-errors-are-rendered), submitting this form will send the following headers:

```http
X-Up-Mode: root
X-Up-Fail-Mode: drawer
```

