Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions debugging/error-codes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@

This reference documents PowerSync error codes organized by component, with troubleshooting suggestions for developers. Use the search bar to look up specific error codes (e.g., `PSYNC_R0001`).

## PSYNC_Rxxxx: Sync Config issues

Check warning on line 9 in debugging/error-codes.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

debugging/error-codes.mdx#L9

Did you really mean 'PSYNC_Rxxxx'?

- **PSYNC_R0001**:
Catch-all [Sync Config](/sync/overview) parsing error, if no more specific error is available

## PSYNC_Sxxxx: Service issues

Check warning on line 14 in debugging/error-codes.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

debugging/error-codes.mdx#L14

Did you really mean 'PSYNC_Sxxxx'?

- **PSYNC_S0001**:
Internal assertion.
Expand Down Expand Up @@ -150,11 +150,11 @@
- **PSYNC_S1146**:
Replication slot invalidated.

The replication slot was invalidated by PostgreSQL, typically because WAL retention exceeded `max_slot_wal_keep_size` during a long-running snapshot. Increase `max_slot_wal_keep_size` on the source database, then either redeploy your Sync Config or delete the existing replication slot to recover. PowerSync will create a new slot and restart replication automatically.
Postgres invalidated the replication slot, typically because WAL retention exceeded `max_slot_wal_keep_size` during a long-running snapshot. To recover, increase `max_slot_wal_keep_size` on the source database, then either redeploy your Sync Config or delete the existing replication slot. PowerSync creates a new slot and restarts replication automatically.

Other causes: `rows_removed` (catalog rows needed by the slot were removed), `wal_level_insufficient`, or `idle_timeout`.

`idle_timeout` is a PostgreSQL 18+ slot invalidation, in this case increase `idle_replication_slot_timeout` instead of `max_slot_wal_keep_size`.
Other causes: `rows_removed` (catalog rows needed by the slot were removed), `wal_level_insufficient`, or `idle_timeout`.
`idle_timeout` is a PostgreSQL 18+ slot invalidation. In this case, increase `idle_replication_slot_timeout` instead of `max_slot_wal_keep_size`.

See [Managing and Monitoring Replication Lag](/maintenance-ops/production-readiness-guide#managing-and-monitoring-replication-lag) for guidance on sizing `max_slot_wal_keep_size`.

Expand Down