---
title: "Refusal"
description: "the one typed shape of every not-allowed and every error"
section: concepts
address: /concepts/refusal
contract: 0476e35e6e275db5
---

# Refusal

the one typed shape of every not-allowed and every error

[figure: Refusal is a value at none scope. The drawing shows its fields and the objects that they point at.]

| property | value |
|---|---|
| kind | value |
| scope | none |
| key | none |
| store | none |
| family | kernel |



## Fields


| field | type | required | note |
|---|---|---|---|
| `what_happened` | `text` | yes | in plain words a customer could act on |
| `input` | `text` | no | which input it was about |
| `rule` | [Law](/concepts/law) | yes | the rule, and why it exists |
| `why` | `text` | yes |  |
| `way_out` | `text` | yes | the call or the route that fixes it |
| `shape_of_the_fix` | `json` | no |  |
| `retry_can_help` | `bool` | yes |  |



## Routes that use it
No route takes or returns Refusal directly. The record holds it, and the objects that point at it reach it.
