At a glance
An alert pulse that fires when more than 1% of database transactions roll back or error, sustained over a 5-minute window. This is the database-layer counterpart to the PostgREST 5xx alert: where that card measures failures at the API surface, this one measures failures inside Postgres itself. A query error spike means transactions are aborting (constraint violations, deadlocks, statement timeouts, permission failures, or a database that has gone read-only). When this fires alongside a PostgREST 5xx spike, the database is the cause and the API is just relaying it.
Calculation
The card divides errored or rolled-back transactions by total transactions for the project database over the trailing 5-minute window:pg_stat_database view, which Postgres maintains as monotonically increasing totals of committed and rolled-back transactions. Vortex IQ samples those counters and works with the delta across the window rather than the lifetime totals, so the rate reflects what is happening now, not the database’s entire history since the last statistics reset.
The alert is sustained, not instantaneous. A baseline rollback rate is normal and healthy: every optimistic-concurrency retry, every deadlock the application recovers from, and every constraint a write deliberately tests produces a rollback. Paging on those would be useless. The pulse raises only when the error rate stays above 1% across the full 5-minute window, which separates a genuine fault (a broken migration, a permissions change, a deadlock storm, a read-only database) from the routine background of recoverable rollbacks.
Worked example
A platform team ships a schema migration to a Supabase-backed application during a low-traffic window. Snapshot taken on 03 Jun 26 at 02:40 BST, minutes after the migration ran.
The error rate jumped from a baseline 0.08% to 3.70% and held across the 02:35 to 02:40 window, so the sustained-5-minute condition was met and the pulse fired. The Nerve Centre headline shows Database Query Error Rate Spike at 3.70% outlined in red.
What the platform team should read into this:
- The timing points straight at the migration. The spike began within minutes of the deploy. The most common cause of a sudden, sustained database error rate immediately after a migration is a structural change the application still violates: a renamed or dropped column the app still writes to, a new NOT NULL or CHECK constraint that existing writes fail, or a row-level-security policy change that rejects updates.
- This is failing writes, which is worse than failing reads. Rollbacks mean transactions did not commit. If the failing transactions are on the write path (orders, cart updates, inventory decrements), data is silently not being saved. Reads degrade the experience; failed writes lose business state. Treat a write-path error spike as higher severity than a read-path one.
- The fastest safe action is usually to roll the migration back. Rather than debug forward under failing writes, reverting the schema change restores the contract the running application expects. Confirm the spike clears after rollback, then reproduce and fix the migration in a non-production environment before re-shipping. If rollback is not possible, identify the specific failing statement from the Postgres logs and patch the offending constraint or grant.
Sibling cards merchants should reference together
Reconciling against the source
Where to look in Supabase’s own tooling:
Logs → Postgres in the managed-service console for the per-statement error stream; the error bodies name the exact failing constraint, object, or permission.
Project metrics endpoint (/customer/v1/privileged/metrics, Prometheus format) for the commit and rollback counters Vortex IQ reads.
Reports → Database for the transaction and error graphs over time.
Database → Migrations to confirm which migration ran and when, the prime suspect when a spike follows a deploy.
Confirm the picture with native SQL:
Cross-connector reconciliation: