UP20050 Reached PostgreSQL Replication Slots Limit

Possible Causes

Upsolver cannot create an ingestion job from the given PostgreSQL database because the maximum replication slot limit has been reached.

Possible Solutions

To solve this issue, unused replication slots can be removed or the replication slot limit can be increased.

Removing replication slots

Be careful not to remove a replication slot that is in use as it will prevent the current consumer of the slot from making progress. Ensure the consumer is finished reading before removing replication slots.

Use the following query to list the current replication slots in the database:

SELECT * FROM pg_catalog.pg_replication_slots;

Replication slots created within Upsolver ingestion job statements are prefixed with upsolver_ . Replication slots from other systems will have different names. If you find old replication slots that you want to drop, run the following command to drop them:

SELECT pg_drop_replication_slot('REPLICATION_SLOT_NAME')

Replication slots created by Upsolver will automatically be deleted by Upsolver when deleting the ingestion job. Directly deleting the replication slot will break the ingestion job that is using it.

Increasing the replication slot limit

If there are no unused replication slots you can drop, you can increase the replication slot limit by modifying the max_replication_slots. The current value can be found by running the following query:

SELECT setting FROM pg_settings WHERE name in ('max_replication_slots');

Updating the limit

After modifying the option group, you will need to restart your PostgreSQL instance by navigating to the RDS instance. Follow steps 1 to 3 in the AWS RDS for PostgreSQL tab below, click on the Actions button, and then click Reboot.

In most self-hosted PostgreSQL databases, the configuration file will be placed in /etc/postgresql/*/main/postgresql.conf.

  1. Open the config file in an editor of your choice.

  2. Check if a configuration value for max_replication_slots exists. If the value exists, update it to the new value, otherwise, add a new row at the end of the file as max_replication_slots = <DESIRED_LIMIT>.

Replace <DESIRED_LIMIT> with the new limit for replication slots.

Restart the database so changes take effect.

Last updated