↑↓ select↵ open⌫ change scopeOpen full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Wiki / SQLSTATE

53400 \u2014 configuration_limit_exceeded

53400 reports that a configured or finite process slot is exhausted. Fixed paths cover background workers, logical-replication workers, and replication-origin state slots.

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
Insufficient Resources
condition name
configuration_limit_exceeded
lang
en
sqlstate
53400

Definition PG 18

53400

At a glance {#at-a-glance}

53400 reports that a configured or finite process slot is exhausted. Fixed paths cover background workers, logical-replication workers, and replication-origin state slots.

Meaning {#meaning}

The source distinguishes too many background workers, no slot for a new autovacuum/background worker, no logical-replication worker slots, and replication-origin state limits. Hints name the parameter where the path can identify one; the current setting and workload determine whether increasing it is safe.

Diagnosis {#diagnosis}

Keep the exact component and parameter from the message. Inspect worker counts, active replication, origin IDs, slots, and server logs; distinguish a worker-slot limit (53400) from a generic resource failure (53000) or a statement complexity limit (54001).

Response {#response}

Remove or finish work that legitimately holds the slot, or raise the named configuration after checking process and memory capacity. Apply the change through the normal configuration/restart or reload procedure, then verify that the requested component can start. These fixed worker, launcher, and replication-origin paths can run in background backend processes rather than a client transaction; where an ERROR reaches an explicit client transaction, use ROLLBACK or ROLLBACK TO SAVEPOINT before retrying, and in autocommit retry only after the slot cause is corrected. Do not create workers merely to force this condition.

Versions {#versions}

The locked catalogue records this condition from 9.2.0; cited background-worker and logical-replication paths are PostgreSQL 18.6 source. No slot exhaustion was run.

Related {#related}

53000, 55000, 54001

Sources {#sources}

src/backend/postmaster/bgworker.c#L1002-L1009

src/backend/replication/logical/launcher.c#L435-L438

src/backend/replication/logical/origin.c#L976-L980

The structured evidence record records fixed messages and the source/runtime boundary.

Compare versions

SQLSTATE evidence and recorded runtime versions

claims · identity
{
  "claim_id": "identity",
  "limits": "",
  "method": "Read fixed definition.",
  "position": 0,
  "runtime": [],
  "sources": [
    "src.errcodes.18.6"
  ],
  "statement": "53400 is configuration_limit_exceeded in SQLSTATE Class 53."
}
claims · resolved-paths
{
  "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 representative resource and object-state mechanisms described."
}
claims · history
{
  "claim_id": "history",
  "limits": "",
  "method": "Use catalogue boundary.",
  "position": 2,
  "runtime": [],
  "sources": [
    "src.errcodes.18.6"
  ],
  "statement": "The locked catalogue records 53400 from 9.2.0; that boundary does not prove exact implementation introduction."
}
messages · message.0
{
  "limits": "",
  "message_id": "message.0",
  "path": "",
  "position": 0,
  "raw": {
    "hint_template": "Consider increasing the configuration parameter \"%s\".",
    "id": "message.0",
    "primary_template": "too many background workers",
    "severity_source": "ERROR",
    "sources": [
      "src.path.0"
    ],
    "sqlstate": "53400"
  },
  "severity": "ERROR",
  "sources": [
    "src.path.0"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "too many background workers",
      "position": 0,
      "role": "",
      "template": "too many background workers"
    },
    {
      "kind": "hint",
      "literal": "Consider increasing the configuration parameter \" \".",
      "position": 1,
      "role": "",
      "template": "Consider increasing the configuration parameter \"%s\"."
    }
  ]
}
messages · message.1
{
  "limits": "",
  "message_id": "message.1",
  "path": "",
  "position": 1,
  "raw": {
    "hint_template": "You might need to increase \"%s\".",
    "id": "message.1",
    "primary_template": "out of logical replication worker slots",
    "severity_source": "ERROR",
    "sources": [
      "src.path.1"
    ],
    "sqlstate": "53400"
  },
  "severity": "ERROR",
  "sources": [
    "src.path.1"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "out of logical replication worker slots",
      "position": 0,
      "role": "",
      "template": "out of logical replication worker slots"
    },
    {
      "kind": "hint",
      "literal": "You might need to increase \" \".",
      "position": 1,
      "role": "",
      "template": "You might need to increase \"%s\"."
    }
  ]
}
messages · message.2
{
  "limits": "",
  "message_id": "message.2",
  "path": "",
  "position": 2,
  "raw": {
    "hint_template": "Increase \"max_active_replication_origins\" and try again.",
    "id": "message.2",
    "primary_template": "could not find free replication state slot for replication origin with ID %d",
    "severity_source": "ERROR",
    "sources": [
      "src.path.2"
    ],
    "sqlstate": "53400"
  },
  "severity": "ERROR",
  "sources": [
    "src.path.2"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "could not find free replication state slot for replication origin with ID",
      "position": 0,
      "role": "",
      "template": "could not find free replication state slot for replication origin with ID %d"
    },
    {
      "kind": "hint",
      "literal": "Increase \"max_active_replication_origins\" and try again.",
      "position": 1,
      "role": "",
      "template": "Increase \"max_active_replication_origins\" and try again."
    }
  ]
}
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#L411"
}
sources · src.path.0
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "",
  "path": "src/backend/postmaster/bgworker.c",
  "position": 1,
  "sha256": "b254fc4e39694a56ac511c4c9246b9b1c8b9b5c7fc86d2808c13edd9b7e21750",
  "source_id": "src.path.0",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/postmaster/bgworker.c#L1002"
}
sources · src.path.1
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "",
  "path": "src/backend/replication/logical/launcher.c",
  "position": 2,
  "sha256": "a38722170de7ef37cd6e45e921d7f025575636d25e892f52f15e251edd4dc450",
  "source_id": "src.path.1",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/replication/logical/launcher.c#L435"
}
sources · src.path.2
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "",
  "path": "src/backend/replication/logical/origin.c",
  "position": 3,
  "sha256": "81e5d5b4539b67bb372f0f0a05395af900c322cdbcec8a4b1f358333a16e6518",
  "source_id": "src.path.2",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/replication/logical/origin.c#L976"
}

Source references

Full definition and evidence JSON

Definition sources

center · PostgreSQL 18 · english-manuals:bc6116f6062d9b9af34531ab4a0449f245098a196d010a20e195657838eef675

Text language: en · english-manuals:bc6116f6062d9b9af34531ab4a0449f245098a196d010a20e195657838eef675