---
title: "messages. diagnostics"
description: "Owner: the pages spec (defs/pages.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: 29
---

# `messages.*` diagnostics

Owner: the pages spec (`defs/pages.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="messages.param_unknown"></a>`messages.param_unknown` | reference | error | 400 | 2 | no | — | `key`, `param`, `known` |
| <a id="messages.plural_incomplete"></a>`messages.plural_incomplete` | schema | warning | — | 2 | no | — | `key`, `locale`, `missing` |
| <a id="messages.plural_no_other"></a>`messages.plural_no_other` | syntax | error | 400 | 2 | no | — | `key`, `offset`, `arg` |
| <a id="messages.select_no_other"></a>`messages.select_no_other` | syntax | error | 400 | 2 | no | — | `key`, `offset`, `arg` |
| <a id="messages.template_syntax"></a>`messages.template_syntax` | syntax | error | 400 | 2 | no | — | `key`, `offset`, `expected` |
| <a id="messages.template_too_deep"></a>`messages.template_too_deep` | syntax | error | 400 | 2 | no | — | `key`, `offset`, `max` |
