# HV00M — fdw_unable_to_create_reply

> PostgreSQL SQLSTATE HV00M identifies an FDW failure to create a reply object. Diagnose the wrapper's result-channel setup separately from execution creation.
---

# HV00M — fdw_unable_to_create_reply

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

`HV00M` denotes failure to create an FDW reply object or result channel. The PostgreSQL 18.6 core/contrib scan has no direct resolved report group; the exact object and driver boundary must be read from the installed wrapper.

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

| Field | Value |
| --- | --- |
| SQLSTATE | `HV00M` |
| Condition | `fdw_unable_to_create_reply` |
| 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_UNABLE_TO_CREATE_REPLY` |
| Aliases | `—` |

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

## Meaning {#meaning}

An FDW may create an execution and a separate reply/result object. `HV00M` names failure of the latter setup; it does not prove that the remote statement was never sent.

## Messages and diagnostics {#messages}

No fixed core message is confirmed. Keep the operation, reply format, connection/handle state, wrapper and driver versions, and any remote diagnostic.

## Diagnosis {#diagnosis}

Trace reply allocation/registration and the point at which the execution object was created. Distinguish local result-buffer failure from a remote protocol rejection. Check whether cleanup left a stale reply handle.

## Response {#response}

Repair the wrapper's result-channel setup and clean up the affected handle according to its API. Before repeating a write, establish remote completion from the wrapper or remote logs; `HV00M` does not make an automatic retry safe.

## Versions {#versions}

`HV00M` is present from 9.1.0 through 18.6 and in 19 Beta 3; no pre-9 definition observation is available.

## Related {#related}

[`HV00L`](../hv00l/) covers execution-object creation; [`HV00K`](../hv00k/) covers a reply handle; [`HV00B`](../hv00b/) covers an invalid generic handle.

## Sources {#sources}

- [`errcodes.txt`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L484) — definition, SHA-256 `6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba`.
- [`fdwapi.h`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/foreign/fdwapi.h#L24-L55) — callback boundary.
- [Structured evidence](../data/evidence/hv00m.json) — bounded source scan.
