# 22010 — invalid_indicator_parameter_value

> Source-backed reference for PostgreSQL SQLSTATE 22010.
---

## At a glance {#at-a-glance}
An indicator parameter value does not satisfy the indicator or descriptor rules of the operation consuming it. The fixed PostgreSQL 18.6 catalogue confirms the condition, but the bounded source scan does not bind it to a native emitter, message template, or severity.

<!-- BEGIN SQLSTATE FACTS: generated by scripts/generate.py; do not edit -->

| Field | Value |
| --- | --- |
| SQLSTATE | `22010` |
| Condition | `invalid_indicator_parameter_value` |
| Status | `active` |
| Known present by | `7.4` |
| Locked snapshots | `9.0.23, 9.1.24, 9.2.24, 9.3.25, 9.4.26, 9.5.25, 9.6.24, 10.23, 11.22, 12.22, 13.23, 14.24, 15.19, 16.15, 17.11, 18.6, 19beta3` |
| Macros | `ERRCODE_INVALID_INDICATOR_PARAMETER_VALUE` |
| Aliases | `—` |

<!-- source facts: data/errcodes/22010.json -->
<!-- END SQLSTATE FACTS -->

## Meaning {#meaning}
`22010` concerns a value carried alongside an operation as an indicator or descriptor field. The condition name alone does not identify a particular API, indicator layout, or server routine; the operation that reports it defines which values are valid.

## Diagnosis {#diagnosis}
Capture the complete diagnostic, operation or API owner, parameter position, source type, and actual indicator value. Check initialization, permitted sign and value ranges, and whether a wrapper translates the failure. A NULL or cast diagnostic by itself does not establish `22010`, and this fixed-source review does not infer an ECPG emitter from the name.

## Response {#response}
Correct the named indicator or descriptor value according to the consuming operation's documented rules, then repeat the operation only after checking its other inputs. If the message comes from a wrapper, repair that wrapper's input mapping rather than assuming a PostgreSQL server-side path.

## Versions {#versions}
The locked catalogue records this condition from 7.4; fixed source coverage is PostgreSQL 18.6. The exact implementation introduction date and an emitting path remain unresolved by this bounded review.

## Related {#related}
[`22002`](../22002/), [`22004`](../22004/)

## Sources {#sources}
The fixed definition is confirmed in `errcodes.txt`. Runtime verification is `not_run`; the bounded PostgreSQL 18.6 scan does not resolve a native emitting function, so this page does not assert a primary template, severity, transaction effect, or API owner. The structured [evidence record](../data/evidence/22010.json) retains the definition and scope boundary.
