electric-sql / electric-sql/electric

Bug: Electric Cloud creates replication slots with failover=false (docs say otherwise)

Open
#3,848 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
10.4k
Forks
375
Avg merge
3d 1h
Merged PRs (30d)
18

Description

## Description

The [PlanetScale integration docs](https://electric-sql.com/docs/integrations/planetscale) state:

> "Electric creates failover-enabled slots automatically"

However, Electric Cloud creates replication slots with `failover = false`:

```sql
SELECT slot_name, failover FROM pg_replication_slots;
-- cloud_electric_slot_svc_ | FALSE
```

## Impact

When PlanetScale performs a cluster update (e.g., version upgrade), replication slots with `failover = false` are dropped. Electric Cloud does not detect this and continues serving stale data indefinitely — no error is logged, no reconnection is attempted.

This caused a **silent ~34 hour outage** where the UI appeared functional (SSE streams running, cursors incrementing) but no new data was delivered.

## Environment

- Electric Cloud (managed service)
- PlanetScale Postgres
- Cluster parameters correctly configured:
- `sync_replication_slots = on`
- `hot_standby_feedback = on`
- Slot name listed in Failover configuration

## Steps to Reproduce

1. Create an Electric Cloud source connected to PlanetScale Postgres
2. Verify slot: `SELECT slot_name, failover FROM pg_replication_slots;` → failover = false
3. Wait for PlanetScale cluster update (or trigger one)
4. Slot is dropped, Electric Cloud serves stale data silently

## Expected Behavior

- Electric should create slots with `failover = true` as documented
- If the slot is lost, Electric should detect this and either recreate it or surface an error

## Workaround

Delete the Electric Cloud source and create a new one, which requires updating `SOURCE_ID` and `SOURCE_SECRET` in all environments.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.