# 08007 — transaction_resolution_unknown

> PostgreSQL SQLSTATE 08007: transaction_resolution_unknown, source-backed diagnosis and recovery guidance.
---

# 08007

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

SQLSTATE `08007` is **transaction_resolution_unknown** in Class `08`. `08007` names an unknown transaction resolution. The fixed PostgreSQL 18.6 and 10.23 call scans contain no resolved core throw site for it.

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

| Field | Value |
| --- | --- |
| SQLSTATE | `08007` |
| Condition | `transaction_resolution_unknown` |
| 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_TRANSACTION_RESOLUTION_UNKNOWN` |
| Aliases | `—` |

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

## Meaning {#meaning}

`08007` names an unknown transaction resolution. The fixed PostgreSQL 18.6 and 10.23 call scans contain no resolved core throw site for it.

## Diagnosis {#diagnosis}

A network failure around COMMIT may leave the client unable to know whether the server committed, but that uncertainty is not automatically an 08007 ErrorResponse. Check server logs, transaction identifiers, and business reconciliation records.

## Response {#response}

Treat completion as unknown until reconciled; use a request key or an application-specific result lookup before deciding whether to repeat work. Do not synthesize this condition with `RAISE` or a timeout.

## Messages {#messages}

This scope has no confirmed fixed primary-message template for `08007`; the available definition/source records do not establish one. Do not treat a client exception without a matching server diagnostic as proof of `08007`.

## Representative case {#case}

This page has no selected natural SQL run. The structured evidence records a source or definition boundary; a client-side `RAISE` would not represent a backend mechanism.

## Versions {#versions}

The generated facts table records the locked catalogue snapshots and earliest observed definition. This page has no selected natural SQL run; its fixed REL_18_6/REL_10_23 source boundary must not be read as an observed runtime result or as a claim about every intermediate release.

## Related {#related}

- [`08006` — connection_failure](../08006/)
- [`40003` — related condition](../40003/)

## Sources {#sources}

- `src.errcodes.18.6` — `src/backend/utils/errcodes.txt` at `REL_18_6` commit `724edf9bde9d356724ad384a2e196edc3c9f80f7`; fixed blob SHA-256 `6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba` ([source](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt)).
- `src.calls.REL_18_6` / `src.calls.REL_10_23` — fixed local call scans, SHA-256 `9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf` / `00d16d3eb01b71ccf1b245c8f3102f9d0ec9f36fb02777b8dd1b99fcb263040c`; these scans preserve the resolved call context used by the claims.
