25004 — inappropriate_isolation_level_for_branch_transaction
25004 names an inappropriate isolation level for a branch transaction. The fixed PostgreSQL 18.6 resolved-call scan has no direct report group for this code, so no ordinary SQL reproduction is claimed.
English manual coverage begins with PostgreSQL 8.1. Source history and runtime observations have their own recorded version boundaries.
Reading PG 18·Select a recorded version
- aliases
- Unknown
- class name
- Invalid Transaction State
- condition name
- inappropriate_isolation_level_for_branch_transaction
- lang
- en
- sqlstate
- 25004
Definition PG 18
25004 — inappropriate_isolation_level_for_branch_transaction
At a glance {#at-a-glance}
25004 names an inappropriate isolation level for a branch transaction. The fixed PostgreSQL 18.6 resolved-call scan has no direct report group for this code, so no ordinary SQL reproduction is claimed.
Meaning {#meaning}
This is a branch-transaction condition, separate from 40001 serialization failure and from the normal SET TRANSACTION ISOLATION LEVEL checks documented for an ordinary transaction.
Diagnosis {#diagnosis}
Keep the branch API, requested isolation level, and transaction state together when diagnosing it. The source evidence does not justify borrowing a message from another isolation-level error.
Response {#response}
Correct the isolation-level negotiation in the branch API, then retry only if that API defines retry semantics. An ordinary SQL session should be diagnosed with the SQLSTATE it actually returned.
Source message and runtime boundary {#messages}
The fixed errcodes.txt row defines the condition and macro; the resolved call scan in raw/calls/REL_18_6.jsonl contains no direct report group, so this batch publishes no message template and constructs no natural SQL trigger.
Applicability boundary and case {#case}
The selected runner cases on PostgreSQL 18.6 and 10.21 are not_applicable; they record the source boundary and contain no copyable SQL trigger. Structured evidence · case export
Versions and limits {#versions}
The generated facts record the locked catalogue snapshots. Both runner targets are source-boundary observations with not_applicable case status; no natural trigger is being promoted to runtime coverage.
Related {#related}
25003 branch transaction access mode, 40001 serialization failure, 25P01 no active SQL transaction.
Sources {#sources}
src.errcodes.18.6(SHA-2566e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba)src.calls.REL_18_6—raw/calls/REL_18_6.jsonl(SHA-2569ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf)
Compare versions
SQLSTATE evidence and recorded runtime versions
cases · branch_transaction_boundary
{
"assertions": [
"No fabricated SQL trigger is included; the selected run records a definition/source boundary."
],
"case_id": "branch_transaction_boundary",
"cleanup": "Drop the case schema with an owner connection.",
"has_snippet": false,
"position": 0,
"preconditions": [
"A runner-owned disposable target is provisioned."
],
"repair": "Follow the explicit transaction or source boundary described by the case.",
"trigger": "Source/definition evidence only; no natural SQL trigger is claimed.",
"versions": [
"10",
"18"
]
}claims · identity
{
"claim_id": "identity",
"limits": "The condition name alone does not identify a supported ordinary-SQL trigger.",
"method": "Read the fixed condition row and macro.",
"position": 0,
"runtime": [],
"sources": [
"src.errcodes.18.6"
],
"statement": "25004 is inappropriate_isolation_level_for_branch_transaction in Class 25."
}claims · source-boundary
{
"claim_id": "source-boundary",
"limits": "Do not substitute a different isolation-level error or a hand-written RAISE example.",
"method": "Scan fixed source call records for SQLSTATE 25004.",
"position": 1,
"runtime": [],
"sources": [
"src.calls.REL_18_6"
],
"statement": "The exhaustive resolved PostgreSQL 18.6 call scan contains no direct 25004 report group; no natural SQL reproduction is claimed."
}runtimes · runtime.25004-batch2-latest-20260909.latest · 18.6 (Homebrew) · not_applicable
{
"cases": [
"branch_transaction_boundary"
],
"limits": "",
"position": 0,
"raw": {
"case_manifest": {
"path": "verify/cases/25004/cases.json",
"sha256": "6e616ecb1ea8026eef7515be693af96fad4452d1a1ad804a504546491178e206"
},
"case_status": "not_applicable",
"cases": [
"branch_transaction_boundary"
],
"id": "runtime.25004-batch2-latest-20260909.latest",
"observed": {
"case_status": "not_applicable"
},
"raw": "verify/results/25004-batch2-latest-20260909/latest/raw.jsonl",
"raw_sha256": "f0d2933f7323aca4846fa9d962b2bff160db9f8c65cb430f6c4f41662203eafc",
"run_id": "25004-batch2-latest-20260909",
"server_version": "18.6 (Homebrew)",
"server_version_num": 180006,
"status": "not_applicable",
"summary": "verify/results/25004-batch2-latest-20260909/latest/summary.json",
"summary_sha256": "6e892b767ad9feef596f0533e1b72620dd5c5e47cfef320c8ace0cfedffa3e7d",
"target": "latest",
"target_status": "passed"
},
"run_id": "25004-batch2-latest-20260909",
"runtime_id": "runtime.25004-batch2-latest-20260909.latest",
"server_version": "18.6 (Homebrew)",
"status": "not_applicable",
"target": "latest"
}runtimes · runtime.25004-batch2-pg10-20260909.pg10 · 10.21 (Debian 10.21-1.pgdg90+1) · not_applicable
{
"cases": [
"branch_transaction_boundary"
],
"limits": "",
"position": 1,
"raw": {
"case_manifest": {
"path": "verify/cases/25004/cases.json",
"sha256": "6e616ecb1ea8026eef7515be693af96fad4452d1a1ad804a504546491178e206"
},
"case_status": "not_applicable",
"cases": [
"branch_transaction_boundary"
],
"id": "runtime.25004-batch2-pg10-20260909.pg10",
"observed": {
"case_status": "not_applicable"
},
"raw": "verify/results/25004-batch2-pg10-20260909/pg10/raw.jsonl",
"raw_sha256": "f956881ba6ff4cc6f036e014e518813fffccb61a6044710a8d1a12d3fe44e8b2",
"run_id": "25004-batch2-pg10-20260909",
"server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
"server_version_num": 100021,
"status": "not_applicable",
"summary": "verify/results/25004-batch2-pg10-20260909/pg10/summary.json",
"summary_sha256": "aec6940d7ab31fd4a9e0fdd6639119dba287bada8c3195ab9e621e0a57bf8e1b",
"target": "pg10",
"target_status": "passed"
},
"run_id": "25004-batch2-pg10-20260909",
"runtime_id": "runtime.25004-batch2-pg10-20260909.pg10",
"server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
"status": "not_applicable",
"target": "pg10"
}sources · src.errcodes.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "src/backend/utils/errcodes.txt",
"position": 0,
"sha256": "6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba",
"source_id": "src.errcodes.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt"
}sources · src.calls.REL_18_6
{
"commit": "",
"docs_url": "",
"kind": "local_artifact",
"location": "",
"path": "raw/calls/REL_18_6.jsonl",
"position": 1,
"sha256": "9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf",
"source_id": "src.calls.REL_18_6",
"tag": "",
"url": ""
}Source references
Full definition and evidence JSON
Definition sources
center · PostgreSQL 18 · english-manuals:ff3d8caa9aef4c97400e28e05ddec460333e1dcaefb43ffab988dd40b8df85f9
Text language: en · english-manuals:ff3d8caa9aef4c97400e28e05ddec460333e1dcaefb43ffab988dd40b8df85f9