---
title: "form. diagnostics"
description: "Owner: the runtime spec (defs/runtime.ts). The status is the code's own; the exit comes from its category (CATEGORIES). A warning or info code never sets the status or the exit."
order: 21
---

# `form.*` diagnostics

Owner: the runtime spec (`defs/runtime.ts`). The status is the code's own; the exit comes from its category (`CATEGORIES`). A warning or info code never sets the status or the exit.

| Code | Category | Severity | Status | Exit | Retry | Fix | Args |
|---|---|---|---|---|---|---|---|
| <a id="form.action_asks_person"></a>`form.action_asks_person` | schema | error | 400 | 2 | no | — | `form`, `action`, `reason` |
| <a id="form.action_barred"></a>`form.action_barred` | schema | error | 400 | 2 | no | — | `form`, `action` |
| <a id="form.action_changes_rows"></a>`form.action_changes_rows` | schema | error | 400 | 2 | no | — | `form`, `action`, `op` |
| <a id="form.action_elevated"></a>`form.action_elevated` | schema | error | 400 | 2 | no | — | `form`, `action`, `reason` |
| <a id="form.action_has_subject"></a>`form.action_has_subject` | schema | error | 400 | 2 | no | — | `form`, `action` |
| <a id="form.action_reads_rows"></a>`form.action_reads_rows` | schema | error | 400 | 2 | no | — | `form`, `action`, `type` |
| <a id="form.action_unknown"></a>`form.action_unknown` | reference | error | 400 | 2 | no | yes | `form`, `action`, `near` |
| <a id="form.challenge_failed"></a>`form.challenge_failed` | auth | error | 403 | 4 | no | — | `form` |
| <a id="form.closed"></a>`form.closed` | state | error | 409 | 5 | no | — | `form` |
| <a id="form.emit_address_from_input"></a>`form.emit_address_from_input` | schema | error | 400 | 2 | no | — | `form`, `to`, `field` |
| <a id="form.fixed_input_sent"></a>`form.fixed_input_sent` | input | error | 400 | 2 | no | — | `form`, `input` |
| <a id="form.fixed_overlap"></a>`form.fixed_overlap` | schema | error | 400 | 2 | no | — | `form`, `input` |
| <a id="form.fixed_reads_identity"></a>`form.fixed_reads_identity` | schema | error | 400 | 2 | no | — | `form`, `input` |
| <a id="form.input_duplicate"></a>`form.input_duplicate` | schema | error | 400 | 2 | no | — | `form`, `input` |
| <a id="form.input_file"></a>`form.input_file` | schema | error | 400 | 2 | no | — | `form`, `input` |
| <a id="form.input_money_source"></a>`form.input_money_source` | schema | error | 400 | 2 | no | — | `form`, `input` |
| <a id="form.input_not_exposed"></a>`form.input_not_exposed` | input | error | 400 | 2 | no | — | `form`, `input` |
| <a id="form.input_ref_unreadable"></a>`form.input_ref_unreadable` | schema | error | 400 | 2 | no | — | `form`, `input`, `target` |
| <a id="form.input_unknown"></a>`form.input_unknown` | reference | error | 400 | 2 | no | yes | `form`, `input`, `near` |
| <a id="form.not_accepted"></a>`form.not_accepted` | state | error | 409 | 5 | no | — | `form` |
| <a id="form.refused"></a>`form.refused` | state | error | 409 | 5 | no | — | `form`, `message` |
| <a id="form.reply_discloses"></a>`form.reply_discloses` | schema | error | 400 | 2 | no | — | `form`, `rule` |
| <a id="form.required_input_hidden"></a>`form.required_input_hidden` | schema | error | 400 | 2 | no | — | `form`, `input` |
| <a id="form.silent_thank_you_undeclared"></a>`form.silent_thank_you_undeclared` | schema | error | 400 | 2 | no | — | `form`, `rule` |
| <a id="form.silent_thank_you_unneeded"></a>`form.silent_thank_you_unneeded` | schema | error | 400 | 2 | no | — | `form` |
| <a id="form.slug_duplicate"></a>`form.slug_duplicate` | schema | error | 400 | 2 | no | — | `form` |
| <a id="form.told_rule_beside_hidden"></a>`form.told_rule_beside_hidden` | schema | error | 400 | 2 | no | — | `form`, `rule`, `hidden` |
