# HV091 — fdw_invalid_descriptor_field_identifier

> PostgreSQL SQLSTATE HV091 names an invalid FDW descriptor field identifier; the descriptor API and field namespace must come from the implementation.
---

# HV091 — fdw_invalid_descriptor_field_identifier

## At a glance {#at-a-glance}

`HV091` identifies a descriptor field identifier that an FDW boundary cannot use. No resolved `HV091` report group was found in the locked PostgreSQL 18.6 core/contrib call scan, so no particular descriptor namespace or message is confirmed.

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

| Field | Value |
| --- | --- |
| SQLSTATE | `HV091` |
| Condition | `fdw_invalid_descriptor_field_identifier` |
| Status | `active` |
| Known present by | `9.1.0` |
| Locked snapshots | `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_FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER` |
| Aliases | `—` |

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

## Meaning {#meaning}

A field identifier may select a name, type, length, or other descriptor property in a wrapper-owned interface. Generic FDW callback signatures do not define this SQLSTATE's field namespace.

## Messages and diagnostics {#messages}

No resolved 18.6 core/contrib message variant was found. Preserve the full diagnostic, descriptor kind, field identifier, expected namespace if reported, callback phase, and wrapper/driver version.

## Diagnosis {#diagnosis}

Identify the descriptor producer and consumer, then compare the requested field identifier with that implementation's documented or source-defined fields. Do not replace it with a column ordinal unless the wrapper explicitly defines that mapping.

## Response {#response}

Use the field identifier supported by the actual descriptor interface, or correct the producer/consumer version mismatch when source evidence shows one. Repeating the same lookup cannot make an unknown identifier valid.

## Versions {#versions}

`HV091` is present in the locked definition snapshots from 9.1.24 through 18.6 and 19 Beta 3, with `known_present_by` 9.1.0. The available pre-9 definition material does not establish an exact introduction release.

## Related {#related}

[`HV021`](../hv021/) concerns inconsistent descriptor information; [`HV008`](../hv008/) concerns an FDW column sequence; [`HV090`](../hv090/) concerns string or buffer length.

## Sources {#sources}

- [`errcodes.txt`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L469) — definition, SHA-256 `6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba`.
- [`fdwapi.h`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/foreign/fdwapi.h#L24-L55) — generic FDW callback boundary.
- [Structured evidence](../data/evidence/hv091.json) — fixed 18.6 sources and bounded scan.
