{"Entry":{"collection":"sqlstate","key":"57P05","name":"57P05","aliases":[],"metadata":{"aliases":[],"case_count":0,"class_code":"57","condition_name":"idle_session_timeout","condition_names":["idle_session_timeout"],"content_hash":"b0b49e86338f48973c1cc41fdeca26301fad888312e33be5bd005713a698b6f9","depth":"full","editorial_review":"reviewed","evidence_tier":"source_path_confirmed","imported_at":"2026-09-30T17:45:27.934198+08:00","introduced":null,"known_present_by":"14.0","macros":["ERRCODE_IDLE_SESSION_TIMEOUT"],"name_zh":"","present_in":["14","15","16","17","18","19"],"preview_in":["19"],"primary_macro":"ERRCODE_IDLE_SESSION_TIMEOUT","removed":null,"runtime_verification":"not_run","severity_classes":["E"],"snippet_count":0,"source_rev":"english-manuals:bce22c115e78cb6aec27ac17a9c48e1070dea6703f591fe0f767b59ec9ec9ebb","sqlstate":"57P05","status":"active","summary_zh":"空闲会话超过 idle_session_timeout 被终止。"}},"Definition":{"Collection":"sqlstate","Key":"57P05","SourceDatabase":"center","Version":"18","SourceTable":"sqlstate","SourceKey":"57P05","SourceRevision":"english-manuals:bce22c115e78cb6aec27ac17a9c48e1070dea6703f591fe0f767b59ec9ec9ebb","Facts":{"aliases":[],"class_name":"Operator Intervention","condition_name":"idle_session_timeout","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"},"lang":"en","sqlstate":"57P05"},"ManualEvidence":{"doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"}},"MeasuredEvidence":{}},"Text":{"Collection":"sqlstate","Key":"57P05","SourceDatabase":"center","Version":"","Locale":"en","Title":"57P05 — idle_session_timeout","Summary":"57P05 terminates a session after idlesessiontimeout expires while the backend is truly idle between commands. The fixed code starts this timer only in the no-transaction branch; idle-in-transaction has a separate condition and timer.","BodyHTML":"\u003ch1\u003e57P05\u003c/h1\u003e\n\u003ch2\u003eAt a glance {#at-a-glance}\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e57P05\u003c/code\u003e terminates a session after \u003ccode\u003eidle_session_timeout\u003c/code\u003e expires while the backend is truly idle between commands. The fixed code starts this timer only in the no-transaction branch; idle-in-transaction has a separate condition and timer.\u003c/p\u003e\n\u003ch2\u003eMeaning {#meaning}\u003c/h2\u003e\n\u003cp\u003eThe fixed primary is \u003ccode\u003eterminating connection due to idle-session timeout\u003c/code\u003e at FATAL. In \u003ccode\u003ePostgresMain\u003c/code\u003e, the idle-session timer is enabled after the backend reports \u003ccode\u003eSTATE_IDLE\u003c/code\u003e and only in the branch where \u003ccode\u003eIsTransactionOrTransactionBlock()\u003c/code\u003e is false. The timer is disabled as soon as a command is read. This makes \u003ccode\u003e57P05\u003c/code\u003e a session-lifecycle termination, distinct from statement timeout \u003ccode\u003e57014\u003c/code\u003e, lock timeout \u003ccode\u003e55P03\u003c/code\u003e, idle-in-transaction timeout \u003ccode\u003e25P03\u003c/code\u003e, and transaction timeout \u003ccode\u003e25P04\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eMessages {#messages}\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrimary: \u003ccode\u003eterminating connection due to idle-session timeout\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eSeverity: FATAL; the timer interrupt terminates the connection rather than returning a recoverable statement ERROR.\u003c/li\u003e\n\u003cli\u003eBoundary: a truly idle session between commands uses \u003ccode\u003e57P05\u003c/code\u003e; a session idle inside an open transaction uses the separate idle-in-transaction timer/condition.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDiagnosis {#diagnosis}\u003c/h2\u003e\n\u003cp\u003eCapture the primary, backend PID, \u003ccode\u003eidle_session_timeout\u003c/code\u003e value and source, last command, \u003ccode\u003epg_stat_activity\u003c/code\u003e state, transaction status, and server log. Verify whether the session was \u003ccode\u003eidle\u003c/code\u003e or \u003ccode\u003eidle in transaction\u003c/code\u003e when the timer started. Elapsed client request time alone cannot distinguish this from statement or lock timeout, and the SQLSTATE should be interpreted with the connection\u0026#39;s last ReadyForQuery state.\u003c/p\u003e\n\u003ch2\u003eResponse {#response}\u003c/h2\u003e\n\u003cp\u003eClose or recreate the expired connection and make long-lived work explicit rather than holding an unused session. Adjust \u003ccode\u003eidle_session_timeout\u003c/code\u003e only when policy permits and the workload needs it. Because FATAL closes the connection, there is no useful \u003ccode\u003eROLLBACK\u003c/code\u003e command to send on that session; after reconnecting, verify durable effects before replaying a non-idempotent command. If the workload was idle in a transaction, diagnose \u003ccode\u003e25P03\u003c/code\u003e/\u003ccode\u003e25P04\u003c/code\u003e and transaction ownership separately.\u003c/p\u003e\n\u003ch2\u003eVersions {#versions}\u003c/h2\u003e\n\u003cp\u003eThe locked catalogue records this condition from 14.0; that boundary does not prove the exact implementation-introduction version. Fixed source coverage is PostgreSQL 18.6.\u003c/p\u003e\n\u003ch2\u003eRelated {#related}\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/wiki/sqlstate/57P01/\" rel=\"nofollow\"\u003e\u003ccode\u003e57P01\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/25P03/\" rel=\"nofollow\"\u003e\u003ccode\u003e25P03\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/25P04/\" rel=\"nofollow\"\u003e\u003ccode\u003e25P04\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/57014/\" rel=\"nofollow\"\u003e\u003ccode\u003e57014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/55P03/\" rel=\"nofollow\"\u003e\u003ccode\u003e55P03\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSources {#sources}\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/tcop/postgres.c#L3504\" rel=\"nofollow\"\u003e\u003ccode\u003esrc/backend/tcop/postgres.c#L3504-3513\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/tcop/postgres.c#L4585\" rel=\"nofollow\"\u003e\u003ccode\u003esrc/backend/tcop/postgres.c#L4585-4650\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/tcop/postgres.c#L4704\" rel=\"nofollow\"\u003e\u003ccode\u003esrc/backend/tcop/postgres.c#L4704-4721\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe structured \u003ca href=\"#sources\" rel=\"nofollow\"\u003eevidence record\u003c/a\u003e records the message and idle-state boundary.\u003c/p\u003e\n","SourceRevision":"english-manuals:bce22c115e78cb6aec27ac17a9c48e1070dea6703f591fe0f767b59ec9ec9ebb","ContentHash":"aed1e780c7c39dd26a37292b630c0b57aba1ccd85caf969bacf3acca210700b9","Payload":{"body_md":"# 57P05\n\n## At a glance {#at-a-glance}\n`57P05` terminates a session after `idle_session_timeout` expires while the backend is truly idle between commands. The fixed code starts this timer only in the no-transaction branch; idle-in-transaction has a separate condition and timer.\n\n\n## Meaning {#meaning}\nThe fixed primary is `terminating connection due to idle-session timeout` at FATAL. In `PostgresMain`, the idle-session timer is enabled after the backend reports `STATE_IDLE` and only in the branch where `IsTransactionOrTransactionBlock()` is false. The timer is disabled as soon as a command is read. This makes `57P05` a session-lifecycle termination, distinct from statement timeout `57014`, lock timeout `55P03`, idle-in-transaction timeout `25P03`, and transaction timeout `25P04`.\n\n## Messages {#messages}\n\n- Primary: `terminating connection due to idle-session timeout`.\n- Severity: FATAL; the timer interrupt terminates the connection rather than returning a recoverable statement ERROR.\n- Boundary: a truly idle session between commands uses `57P05`; a session idle inside an open transaction uses the separate idle-in-transaction timer/condition.\n\n## Diagnosis {#diagnosis}\nCapture the primary, backend PID, `idle_session_timeout` value and source, last command, `pg_stat_activity` state, transaction status, and server log. Verify whether the session was `idle` or `idle in transaction` when the timer started. Elapsed client request time alone cannot distinguish this from statement or lock timeout, and the SQLSTATE should be interpreted with the connection's last ReadyForQuery state.\n\n## Response {#response}\nClose or recreate the expired connection and make long-lived work explicit rather than holding an unused session. Adjust `idle_session_timeout` only when policy permits and the workload needs it. Because FATAL closes the connection, there is no useful `ROLLBACK` command to send on that session; after reconnecting, verify durable effects before replaying a non-idempotent command. If the workload was idle in a transaction, diagnose `25P03`/`25P04` and transaction ownership separately.\n\n## Versions {#versions}\nThe locked catalogue records this condition from 14.0; that boundary does not prove the exact implementation-introduction version. Fixed source coverage is PostgreSQL 18.6.\n\n## Related {#related}\n[`57P01`](/wiki/sqlstate/57P01/), [`25P03`](/wiki/sqlstate/25P03/), [`25P04`](/wiki/sqlstate/25P04/), [`57014`](/wiki/sqlstate/57014/), [`55P03`](/wiki/sqlstate/55P03/)\n\n## Sources {#sources}\n[`src/backend/tcop/postgres.c#L3504-3513`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/tcop/postgres.c#L3504)\n\n[`src/backend/tcop/postgres.c#L4585-4650`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/tcop/postgres.c#L4585)\n\n[`src/backend/tcop/postgres.c#L4704-4721`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/tcop/postgres.c#L4704)\n\nThe structured [evidence record](#sources) records the message and idle-state boundary.\n","description":"Source-backed full entry for PostgreSQL SQLSTATE 57P05.","is_stale":false,"name":"","sections":[{"anchor":"","heading":"","html":"\u0026lt;h1\u0026gt;57P05\u0026lt;/h1\u0026gt;"},{"anchor":"at-a-glance","heading":"At a glance","html":"\u003cp\u003e\u003ccode\u003e57P05\u003c/code\u003e terminates a session after \u003ccode\u003eidle_session_timeout\u003c/code\u003e expires while the backend is truly idle between commands. The fixed code starts this timer only in the no-transaction branch; idle-in-transaction has a separate condition and timer.\u003c/p\u003e"},{"anchor":"meaning","heading":"Meaning","html":"\u003cp\u003eThe fixed primary is \u003ccode\u003eterminating connection due to idle-session timeout\u003c/code\u003e at FATAL. In \u003ccode\u003ePostgresMain\u003c/code\u003e, the idle-session timer is enabled after the backend reports \u003ccode\u003eSTATE_IDLE\u003c/code\u003e and only in the branch where \u003ccode\u003eIsTransactionOrTransactionBlock()\u003c/code\u003e is false. The timer is disabled as soon as a command is read. This makes \u003ccode\u003e57P05\u003c/code\u003e a session-lifecycle termination, distinct from statement timeout \u003ccode\u003e57014\u003c/code\u003e, lock timeout \u003ccode\u003e55P03\u003c/code\u003e, idle-in-transaction timeout \u003ccode\u003e25P03\u003c/code\u003e, and transaction timeout \u003ccode\u003e25P04\u003c/code\u003e.\u003c/p\u003e"},{"anchor":"messages","heading":"Messages","html":"\u003cul\u003e\n\u003cli\u003ePrimary: \u003ccode\u003eterminating connection due to idle-session timeout\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eSeverity: FATAL; the timer interrupt terminates the connection rather than returning a recoverable statement ERROR.\u003c/li\u003e\n\u003cli\u003eBoundary: a truly idle session between commands uses \u003ccode\u003e57P05\u003c/code\u003e; a session idle inside an open transaction uses the separate idle-in-transaction timer/condition.\u003c/li\u003e\n\u003c/ul\u003e"},{"anchor":"diagnosis","heading":"Diagnosis","html":"\u003cp\u003eCapture the primary, backend PID, \u003ccode\u003eidle_session_timeout\u003c/code\u003e value and source, last command, \u003ccode\u003epg_stat_activity\u003c/code\u003e state, transaction status, and server log. Verify whether the session was \u003ccode\u003eidle\u003c/code\u003e or \u003ccode\u003eidle in transaction\u003c/code\u003e when the timer started. Elapsed client request time alone cannot distinguish this from statement or lock timeout, and the SQLSTATE should be interpreted with the connection's last ReadyForQuery state.\u003c/p\u003e"},{"anchor":"response","heading":"Response","html":"\u003cp\u003eClose or recreate the expired connection and make long-lived work explicit rather than holding an unused session. Adjust \u003ccode\u003eidle_session_timeout\u003c/code\u003e only when policy permits and the workload needs it. Because FATAL closes the connection, there is no useful \u003ccode\u003eROLLBACK\u003c/code\u003e command to send on that session; after reconnecting, verify durable effects before replaying a non-idempotent command. If the workload was idle in a transaction, diagnose \u003ccode\u003e25P03\u003c/code\u003e/\u003ccode\u003e25P04\u003c/code\u003e and transaction ownership separately.\u003c/p\u003e"},{"anchor":"versions","heading":"Versions","html":"\u003cp\u003eThe locked catalogue records this condition from 14.0; that boundary does not prove the exact implementation-introduction version. Fixed source coverage is PostgreSQL 18.6.\u003c/p\u003e"},{"anchor":"related","heading":"Related","html":"\u003cp\u003e\u003ca href=\"/wiki/sqlstate/57P01/\"\u003e\u003ccode\u003e57P01\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/25P03/\"\u003e\u003ccode\u003e25P03\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/25P04/\"\u003e\u003ccode\u003e25P04\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/57014/\"\u003e\u003ccode\u003e57014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/55P03/\"\u003e\u003ccode\u003e55P03\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e"},{"anchor":"sources","heading":"Sources","html":"\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/tcop/postgres.c#L3504\"\u003e\u003ccode\u003esrc/backend/tcop/postgres.c#L3504-3513\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/tcop/postgres.c#L4585\"\u003e\u003ccode\u003esrc/backend/tcop/postgres.c#L4585-4650\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/tcop/postgres.c#L4704\"\u003e\u003ccode\u003esrc/backend/tcop/postgres.c#L4704-4721\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe structured \u003ca href=\"#sources\"\u003eevidence record\u003c/a\u003e records the message and idle-state boundary.\u003c/p\u003e"}],"summary":"57P05 terminates a session after idlesessiontimeout expires while the backend is truly idle between commands. The fixed code starts this timer only in the no-transaction branch; idle-in-transaction has a separate condition and timer.","title":"57P05 — idle_session_timeout","translation_source_rev":"f55e9cb79e0ab3269a5365a6f52be5f86d4c609314cfdab3ae8f1ad955b17a67"}},"RequestedLocale":"en","Fallback":false,"Versions":["14","15","16","17","18","19","20"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":{"aliases":[],"catalogue_notes":{"earliest_observed":"14.0","formal_scope":"9.0.0..18.6","latest_observed":"18.6","matrix_scope":["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"],"pre9_scope":{"formal_tag_count":191,"maximum_release":"8.4.22","minimum_release":"7.0.0","source_definition_count":153,"source_doc_count":153,"source_file_count":306,"source_scope":"7.4..8.4 definition files; 7.0..7.3 candidate-path source gap probes","source_tag_count":153},"pre9_status":"not_observed","preview_scope":["19beta3"]},"class":"57","class_name":"Operator Intervention","condition_name":"idle_session_timeout","condition_names":["idle_session_timeout"],"definition_changes":[],"english_manuals":{"14":{"aliases":[],"class_name":"Operator Intervention","condition_name":"idle_session_timeout","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"1c12e83304e0f4ff64c9d98ca5e3007df6756932ed19867a4fa0e0650f6c5751","slug":"14"},"lang":"en","sqlstate":"57P05"},"15":{"aliases":[],"class_name":"Operator Intervention","condition_name":"idle_session_timeout","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2161f58f6e87f6535b3b1f3d4661427bb6765f4f6b074fcc16fac97594b50599","slug":"15"},"lang":"en","sqlstate":"57P05"},"16":{"aliases":[],"class_name":"Operator Intervention","condition_name":"idle_session_timeout","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"928e705933d7c3d018ae3fba9d800b34e6325746d157339dce878473c519d100","slug":"16"},"lang":"en","sqlstate":"57P05"},"17":{"aliases":[],"class_name":"Operator Intervention","condition_name":"idle_session_timeout","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"868135520af87351e3ea1ba42656111cbd2d157d98e1fef05ea158ac5729d8b1","slug":"17"},"lang":"en","sqlstate":"57P05"},"18":{"aliases":[],"class_name":"Operator Intervention","condition_name":"idle_session_timeout","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"},"lang":"en","sqlstate":"57P05"},"19":{"aliases":[],"class_name":"Operator Intervention","condition_name":"idle_session_timeout","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"63fb8d1aa9f494eeab9d0f8542a2b673f7746ee41ae2689d19403cb3cc425a5c","slug":"19"},"lang":"en","sqlstate":"57P05"},"20":{"aliases":[],"class_name":"Operator Intervention","condition_name":"idle_session_timeout","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"0d3f602127cd137cf343b32d5fa78f175eeb6cdcb6353b1f6f998ede6cb7b911","slug":"devel"},"lang":"en","sqlstate":"57P05"}},"history_boundary":{"earliest_observed":"14.0","formal_tag_count":351,"gaps":[{"after":"18.6","before":"18.4","reason":"Non-adjacent release tags or a source gap; no removal is inferred."}],"latest_observed":"18.6","pre_range":{"first_observed":null,"known_lower_bound":null,"last_observed":null,"notes":"No occurrence was observed in the locked 7.4..8.4 definition files. Source gaps for 7.0..7.3 prevent a claim that the code was absent before 7.4.","scanned_formal_release_count":153,"scanned_source_scope":"7.4..8.4 definition files; 7.0..7.3 candidate-path source gap probes","source_gap_majors":["7.0","7.1","7.2","7.3"],"status":"partially_scanned"},"preview_snapshots":["19beta3"],"scanned_from":"9.0.0","scanned_to":"18.6"},"introduced":null,"known_present_by":"14.0","macros":["ERRCODE_IDLE_SESSION_TIMEOUT"],"manual_presence":["14","15","16","17","18","19","20"],"pre9_first_observed":null,"pre9_introduction_boundary":null,"pre9_last_observed":null,"pre9_presence_intervals":[],"pre9_status":"not_observed","presence_intervals":[{"end":"14.24","end_major":"14","end_tag":"REL_14_24","evidence_count":25,"position":0,"start":"14.0","start_major":"14","start_tag":"REL_14_0"},{"end":"15.19","end_major":"15","end_tag":"REL_15_19","evidence_count":20,"position":1,"start":"15.0","start_major":"15","start_tag":"REL_15_0"},{"end":"16.15","end_major":"16","end_tag":"REL_16_15","evidence_count":16,"position":2,"start":"16.0","start_major":"16","start_tag":"REL_16_0"},{"end":"17.11","end_major":"17","end_tag":"REL_17_11","evidence_count":12,"position":3,"start":"17.0","start_major":"17","start_tag":"REL_17_0"},{"end":"18.4","end_major":"18","end_tag":"REL_18_4","evidence_count":5,"position":4,"start":"18.0","start_major":"18","start_tag":"REL_18_0"},{"end":"18.6","end_major":"18","end_tag":"REL_18_6","evidence_count":1,"position":5,"start":"18.6","start_major":"18","start_tag":"REL_18_6"}],"present_in_snapshots":["14.24","15.19","16.15","17.11","18.6","19beta3"],"preview_in_snapshots":["19beta3"],"primary_macro":"ERRCODE_IDLE_SESSION_TIMEOUT","removed":null,"schema_version":2,"severity_classes":["E"],"sources":[{"blob_id":"sha256:c3c967fa20577f7ded946cb99e1a4706b85bb2476fd32d7e4a133c971a603552","channel":"formal","code_count":259,"commit":"86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c","id":"postgresql:REL_14_0:src/backend/utils/errcodes.txt","major":"14","parsed_path":"raw/definitions/REL_14_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_14_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c/src/backend/utils/errcodes.txt","record_count":265,"release":"14.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"c3c967fa20577f7ded946cb99e1a4706b85bb2476fd32d7e4a133c971a603552","size":33337,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_14_0","url":"https://github.com/postgres/postgres/blob/86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c/src/backend/utils/errcodes.txt","version":"14.0"},{"blob_id":"sha256:a34b5fccd8a27c92817314dd942b79e76896cd1d9a8d4be21c81b02227850b4a","channel":"formal","code_count":260,"commit":"2a7ce2e2ce474504a707ec03e128fde66cfb8b48","id":"postgresql:REL_15_0:src/backend/utils/errcodes.txt","major":"15","parsed_path":"raw/definitions/REL_15_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_15_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/2a7ce2e2ce474504a707ec03e128fde66cfb8b48/src/backend/utils/errcodes.txt","record_count":266,"release":"15.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"a34b5fccd8a27c92817314dd942b79e76896cd1d9a8d4be21c81b02227850b4a","size":33458,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_15_0","url":"https://github.com/postgres/postgres/blob/2a7ce2e2ce474504a707ec03e128fde66cfb8b48/src/backend/utils/errcodes.txt","version":"15.0"},{"blob_id":"sha256:1d1d741b7b7c6dfd8275287e31c79befed75f3b9349e1a42ef0ca147c429ff88","channel":"formal","code_count":260,"commit":"c372fbbd8e911f2412b80a8c39d7079366565d67","id":"postgresql:REL_16_0:src/backend/utils/errcodes.txt","major":"16","parsed_path":"raw/definitions/REL_16_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_16_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/c372fbbd8e911f2412b80a8c39d7079366565d67/src/backend/utils/errcodes.txt","record_count":266,"release":"16.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"1d1d741b7b7c6dfd8275287e31c79befed75f3b9349e1a42ef0ca147c429ff88","size":33458,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_16_0","url":"https://github.com/postgres/postgres/blob/c372fbbd8e911f2412b80a8c39d7079366565d67/src/backend/utils/errcodes.txt","version":"16.0"},{"blob_id":"sha256:bb53279934510355eb4135a807c90d989f07650bd90f87026a4441f11d3296b1","channel":"formal","code_count":260,"commit":"d7ec59a63d745ba74fba0e280bbf85dc6d1caa3e","id":"postgresql:REL_17_0:src/backend/utils/errcodes.txt","major":"17","parsed_path":"raw/definitions/REL_17_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_17_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/d7ec59a63d745ba74fba0e280bbf85dc6d1caa3e/src/backend/utils/errcodes.txt","record_count":266,"release":"17.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"bb53279934510355eb4135a807c90d989f07650bd90f87026a4441f11d3296b1","size":33392,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_17_0","url":"https://github.com/postgres/postgres/blob/d7ec59a63d745ba74fba0e280bbf85dc6d1caa3e/src/backend/utils/errcodes.txt","version":"17.0"},{"blob_id":"sha256:6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba","channel":"formal","code_count":262,"commit":"3d6a828938a5fa0444275d3d2f67b64ec3199eb7","id":"postgresql:REL_18_0:src/backend/utils/errcodes.txt","major":"18","parsed_path":"raw/definitions/REL_18_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_18_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/3d6a828938a5fa0444275d3d2f67b64ec3199eb7/src/backend/utils/errcodes.txt","record_count":268,"release":"18.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba","size":33739,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_18_0","url":"https://github.com/postgres/postgres/blob/3d6a828938a5fa0444275d3d2f67b64ec3199eb7/src/backend/utils/errcodes.txt","version":"18.0"},{"blob_id":"sha256:cadb9e83cde9a8699a7e74448891ca623af8579ccc8e11c7e533fb47cbc42f89","channel":"preview","code_count":262,"commit":"3638289fb57bdabec00deda98ee9624a35f5d66a","id":"postgresql:REL_19_BETA3:src/backend/utils/errcodes.txt","major":"19","parsed_path":"raw/definitions/REL_19_BETA3.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_19_BETA3.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/3638289fb57bdabec00deda98ee9624a35f5d66a/src/backend/utils/errcodes.txt","record_count":268,"release":"19beta3","release_date":"2026-08-13","repository":"https://github.com/postgres/postgres.git","sha256":"cadb9e83cde9a8699a7e74448891ca623af8579ccc8e11c7e533fb47cbc42f89","size":33739,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_19_BETA3","url":"https://github.com/postgres/postgres/blob/3638289fb57bdabec00deda98ee9624a35f5d66a/src/backend/utils/errcodes.txt","version":"19beta3"}],"sqlstate":"57P05","status":"active","usage_evidence":[{"evidence_ids":["postgresql:REL_14_0:src/backend/utils/errcodes.txt","postgresql:REL_14_10:src/backend/utils/errcodes.txt","postgresql:REL_14_11:src/backend/utils/errcodes.txt","postgresql:REL_14_12:src/backend/utils/errcodes.txt","postgresql:REL_14_13:src/backend/utils/errcodes.txt","postgresql:REL_14_14:src/backend/utils/errcodes.txt","postgresql:REL_14_15:src/backend/utils/errcodes.txt","postgresql:REL_14_16:src/backend/utils/errcodes.txt","postgresql:REL_14_17:src/backend/utils/errcodes.txt","postgresql:REL_14_18:src/backend/utils/errcodes.txt","postgresql:REL_14_19:src/backend/utils/errcodes.txt","postgresql:REL_14_1:src/backend/utils/errcodes.txt","postgresql:REL_14_20:src/backend/utils/errcodes.txt","postgresql:REL_14_21:src/backend/utils/errcodes.txt","postgresql:REL_14_22:src/backend/utils/errcodes.txt","postgresql:REL_14_23:src/backend/utils/errcodes.txt","postgresql:REL_14_24:src/backend/utils/errcodes.txt","postgresql:REL_14_2:src/backend/utils/errcodes.txt","postgresql:REL_14_3:src/backend/utils/errcodes.txt","postgresql:REL_14_4:src/backend/utils/errcodes.txt","postgresql:REL_14_5:src/backend/utils/errcodes.txt","postgresql:REL_14_6:src/backend/utils/errcodes.txt","postgresql:REL_14_7:src/backend/utils/errcodes.txt","postgresql:REL_14_8:src/backend/utils/errcodes.txt","postgresql:REL_14_9:src/backend/utils/errcodes.txt","postgresql:REL_15_0:src/backend/utils/errcodes.txt","postgresql:REL_15_10:src/backend/utils/errcodes.txt","postgresql:REL_15_11:src/backend/utils/errcodes.txt","postgresql:REL_15_12:src/backend/utils/errcodes.txt","postgresql:REL_15_13:src/backend/utils/errcodes.txt","postgresql:REL_15_14:src/backend/utils/errcodes.txt","postgresql:REL_15_15:src/backend/utils/errcodes.txt","postgresql:REL_15_16:src/backend/utils/errcodes.txt","postgresql:REL_15_17:src/backend/utils/errcodes.txt","postgresql:REL_15_18:src/backend/utils/errcodes.txt","postgresql:REL_15_19:src/backend/utils/errcodes.txt","postgresql:REL_15_1:src/backend/utils/errcodes.txt","postgresql:REL_15_2:src/backend/utils/errcodes.txt","postgresql:REL_15_3:src/backend/utils/errcodes.txt","postgresql:REL_15_4:src/backend/utils/errcodes.txt","postgresql:REL_15_5:src/backend/utils/errcodes.txt","postgresql:REL_15_6:src/backend/utils/errcodes.txt","postgresql:REL_15_7:src/backend/utils/errcodes.txt","postgresql:REL_15_8:src/backend/utils/errcodes.txt","postgresql:REL_15_9:src/backend/utils/errcodes.txt","postgresql:REL_16_0:src/backend/utils/errcodes.txt","postgresql:REL_16_10:src/backend/utils/errcodes.txt","postgresql:REL_16_11:src/backend/utils/errcodes.txt","postgresql:REL_16_12:src/backend/utils/errcodes.txt","postgresql:REL_16_13:src/backend/utils/errcodes.txt","postgresql:REL_16_14:src/backend/utils/errcodes.txt","postgresql:REL_16_15:src/backend/utils/errcodes.txt","postgresql:REL_16_1:src/backend/utils/errcodes.txt","postgresql:REL_16_2:src/backend/utils/errcodes.txt","postgresql:REL_16_3:src/backend/utils/errcodes.txt","postgresql:REL_16_4:src/backend/utils/errcodes.txt","postgresql:REL_16_5:src/backend/utils/errcodes.txt","postgresql:REL_16_6:src/backend/utils/errcodes.txt","postgresql:REL_16_7:src/backend/utils/errcodes.txt","postgresql:REL_16_8:src/backend/utils/errcodes.txt","postgresql:REL_16_9:src/backend/utils/errcodes.txt","postgresql:REL_17_0:src/backend/utils/errcodes.txt","postgresql:REL_17_10:src/backend/utils/errcodes.txt","postgresql:REL_17_11:src/backend/utils/errcodes.txt","postgresql:REL_17_1:src/backend/utils/errcodes.txt","postgresql:REL_17_2:src/backend/utils/errcodes.txt","postgresql:REL_17_3:src/backend/utils/errcodes.txt","postgresql:REL_17_4:src/backend/utils/errcodes.txt","postgresql:REL_17_5:src/backend/utils/errcodes.txt","postgresql:REL_17_6:src/backend/utils/errcodes.txt","postgresql:REL_17_7:src/backend/utils/errcodes.txt","postgresql:REL_17_8:src/backend/utils/errcodes.txt","postgresql:REL_17_9:src/backend/utils/errcodes.txt","postgresql:REL_18_0:src/backend/utils/errcodes.txt","postgresql:REL_18_1:src/backend/utils/errcodes.txt","postgresql:REL_18_2:src/backend/utils/errcodes.txt","postgresql:REL_18_3:src/backend/utils/errcodes.txt","postgresql:REL_18_4:src/backend/utils/errcodes.txt","postgresql:REL_18_6:src/backend/utils/errcodes.txt","postgresql:REL_19_BETA3:src/backend/utils/errcodes.txt"],"notes":"Presence in a PostgreSQL release definition file is established; runtime throw/use scanning is maintained separately.","scope":"release-definition-catalogue","status":"definition_only"},{"evidence_ids":[],"notes":"No occurrence was found in the locked 7.4..8.4 definition files; 7.0..7.3 source gaps remain explicit.","scope":"pre9-definition-history","status":"unknown"}]},"Evidence":[{"Kind":"claims","Ordinal":0,"ID":"identity","ServerVersion":null,"Status":null,"Payload":{"claim_id":"identity","limits":"","method":"Read fixed definition.","position":0,"runtime":[],"sources":["src.errcodes.18.6"],"statement":"57P05 is idle_session_timeout in SQLSTATE Class 57."}},{"Kind":"claims","Ordinal":1,"ID":"resolved-paths","ServerVersion":null,"Status":null,"Payload":{"claim_id":"resolved-paths","limits":"Source confirmation is not natural runtime.","method":"Read complete fixed source contexts.","position":1,"runtime":[],"sources":["src.path.0","src.path.1","src.path.2"],"statement":"The cited PostgreSQL 18.6 source paths support the concrete phase, message, and lifecycle boundary described."}},{"Kind":"claims","Ordinal":2,"ID":"history","ServerVersion":null,"Status":null,"Payload":{"claim_id":"history","limits":"","method":"Use catalogue boundary.","position":2,"runtime":[],"sources":["src.errcodes.18.6"],"statement":"The locked catalogue records 57P05 from 14.0; that boundary does not prove exact implementation introduction."}},{"Kind":"claims","Ordinal":3,"ID":"idle-boundary","ServerVersion":null,"Status":null,"Payload":{"claim_id":"idle-boundary","limits":"","method":"Read the complete PostgresMain state branches and timeout disable path.","position":3,"runtime":[],"sources":["src.path.1","src.path.2"],"statement":"The idle-session timer starts only in the no-transaction STATE_IDLE branch and is disabled when input arrives; idle-in-transaction uses a separate timer and condition."}},{"Kind":"messages","Ordinal":0,"ID":"message.0","ServerVersion":null,"Status":null,"Payload":{"limits":"","message_id":"message.0","path":"","position":0,"raw":{"id":"message.0","primary_template":"terminating connection due to idle-session timeout","severity_source":"FATAL","sources":["src.path.0"],"sqlstate":"57P05"},"severity":"FATAL","sources":["src.path.0"],"templates":[{"kind":"primary","literal":"terminating connection due to idle-session timeout","position":0,"role":"","template":"terminating connection due to idle-session timeout"}]}},{"Kind":"sources","Ordinal":0,"ID":"src.errcodes.18.6","ServerVersion":null,"Status":null,"Payload":{"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#L439"}},{"Kind":"sources","Ordinal":1,"ID":"src.path.0","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/tcop/postgres.c","position":1,"sha256":"9fb62275b1badf94d01ab351337b60410cd9b3ab1fe63fa9f23d6d2185a21061","source_id":"src.path.0","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/tcop/postgres.c#L3511"}},{"Kind":"sources","Ordinal":2,"ID":"src.path.1","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/tcop/postgres.c","position":2,"sha256":"9fb62275b1badf94d01ab351337b60410cd9b3ab1fe63fa9f23d6d2185a21061","source_id":"src.path.1","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/tcop/postgres.c#L4585"}},{"Kind":"sources","Ordinal":3,"ID":"src.path.2","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/tcop/postgres.c","position":3,"sha256":"9fb62275b1badf94d01ab351337b60410cd9b3ab1fe63fa9f23d6d2185a21061","source_id":"src.path.2","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/tcop/postgres.c#L4704"}}]}
