The worst bugs are the quiet ones. A job keeps running, the logs stay green, the error tracker has nothing to say. But a table that used to grow every night has stopped growing, and the first person to notice is a customer’s accountant three weeks later, looking for a file that was never written.
Nobody is watching. Error trackers catch exceptions, not absences. A job that succeeds while writing zero rows looks exactly like a job that worked. When the complaint finally arrives, the team has to reconstruct weeks of history, find every account that missed its data, and explain why nobody saw it sooner.
# data watch, read only
nightly_exports.rows_written, last 2 nights
→ 0 · 0 (usual range 900 to 1,400)
# code and history
PR #4688 upgraded the csv gem, export_job.rb:41 now drops every row
# verdict
bug · urgent · data missing for 214 accounts, no complaint yet
A missing row never raises an exception.
The longer a silent bug runs, the more data has to be rebuilt and the harder the conversation with customers becomes. Two days of missing exports is a rerun and a short note. Three weeks is an incident, a backlog of manual corrections and a customer who wonders what else is quietly broken.
Deflekt only reads your database. It does not rerun jobs, backfill tables or change data on its own. The rerun command waits for a developer to execute it, the fix goes through your tests and your review like any other pull request, and every rule it has learned can be inspected and dismissed. When you dismiss an alert, it remembers why. Read the silent export case, see how Deflekt reads PostgreSQL, or compare it with deploy regressions.