# HV00A — fdw_invalid_string_format

> PostgreSQL SQLSTATE HV00A denotes a string format that an FDW cannot accept. Confirm the wrapper's format grammar and the operation phase.
---

# HV00A — fdw_invalid_string_format

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

`HV00A` is the SQL/MED condition for an invalid string format at an FDW boundary. PostgreSQL 18.6's core/contrib call scan found no resolved direct report group, so the format grammar and message must come from the installed wrapper or remote driver.

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

| Field | Value |
| --- | --- |
| SQLSTATE | `HV00A` |
| Condition | `fdw_invalid_string_format` |
| 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_STRING_FORMAT` |
| Aliases | `—` |

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

## Meaning {#meaning}

The wrapper rejected a string because its syntax, escaping, encoding, or format fields do not satisfy the wrapper contract. The condition does not identify whether the string was an option, a remote identifier, a serialized value, or a driver response.

## Messages and diagnostics {#messages}

No fixed core message is confirmed. Keep the operation, option or field name, original encoding/quoting, wrapper version, and any remote diagnostic. Do not rewrite the string based only on the condition name.

## Diagnosis {#diagnosis}

Locate the wrapper's parser or conversion function and compare the exact input with its pinned grammar. Check server encoding and escaping only where that wrapper documents them. Distinguish a malformed FDW option from a remote SQL syntax error and from a value-format condition in Class 22.

## Response {#response}

Correct the string according to the wrapper's documented format, or use its structured option/API instead of hand-built text. Recreate the plan or foreign-table metadata after the change; retrying the unchanged string will reproduce the same validation result.

## Versions {#versions}

`HV00A` is present in the locked catalogue from 9.1.0 through 18.6 and in 19 Beta 3. It was not observed in the available pre-9 definition files; exact introduction remains unknown.

## Related {#related}

[`HV00D`](../hv00d/) concerns an unrecognized option name; [`HV004`](../hv004/) concerns a data-type mismatch. A core text/value format error may use a Class 22 code instead.

## Sources {#sources}

- [`errcodes.txt`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L474) — 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/hv00a.json) — bounded scan and source boundary.
