climate_sync silently dead-letters cells: 4 never recent-synced, 6 with zero derived rows, 39 stale >24h - nothing retries, nothing reports #55
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Jinemi/thermograph#55
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
The prod climate pipeline drops cells on the floor. Nothing retries them and nothing reports them, so the gaps persist indefinitely - the worst cell is 72.3h stale and climbing.
Evidence (prod, read-only, 2026-07-24 ~19:40 UTC)
Coverage across the three tables:
Every cell with no recent rows and/or no derived rows:
Two distinct failure modes, not one:
1095_-2732,1197_-2459,1811_281,2133_75):history_synced_atis set,recent_synced_atis NULL, and there are zero rows in bothclimate_recentandderived. History landed, the recent sync never ran, nothing noticed.1377_-2782,1378_-2781): these did recent-sync - 33 rows each - but produced zeroderivedrows. The derive step failed silently after a successful sync. These are also the two stalest cells in the entire table (72.3h and 64.8h), so they look stuck rather than merely slow. This mode is invisible to any check that only looks atrecent_synced_at.Staleness:
Ten stalest cells:
One orphan row in the other direction:
derivedholds one cell that no longer exists inclimate_sync, so reconciliation is missing in both directions.Impact
Thermograph's whole proposition is "this location versus its own ~45-year history." A cell 72h stale is grading today's weather against a three-day-old recent window, and a cell with zero
derivedrows has no grading basis at all. Because nothing reports any of this, staleness is unbounded - the worst cell was measured at 71.8h earlier today and is 72.3h now, i.e. it is not being retried, it is simply aging.Suggested action
recent_synced_at IS NULLbuthistory_synced_atis set.recent_synced_at, plus counts of the two dead-letter modes) and alert on it, so this surfaces without someone running SQL by hand.derived/climate_syncorphan.All figures re-derived from prod at filing time via read-only queries.