prop/test/microwaveprop/workers
Graham McIntire 14a2284321
Handle CDS "rejected" status + widen submit cap headroom
CDS returns status="rejected" (distinct from "failed") when a submit
is rate-limited past the 150-job per-user cap. The poll worker's
interpret_status_body treated this as an unknown status → generic
retryable error → 10 retries → discarded. 102 jobs hit this path
overnight.

Fix:
  * Era5Client.check_status/1 now returns {:rejected, reason} (and
    treats "dismissed" the same way — that's the status a manually
    deleted job transitions to).
  * Era5PollWorker handles :rejected exactly like :not_found: drop the
    DB row, clean up the sibling CDS job, re-enqueue the submit, and
    discard the current Oban job so it doesn't burn attempts retrying
    a terminal state.
  * Widened Era5SubmitWorker cap headroom from 10 → 30 (effective
    ceiling 120 not 140). The race between concurrent workers all
    passing the count check simultaneously meant we were reaching 141
    in-flight against the 150 hard cap; 30 slots of headroom tolerates
    a ~15-worker race before clipping CDS's ceiling.

Refactored handle_row/1 into handle_row + handle_non_both_done with a
leg_outcome/1 tag helper so the cross-product of leg statuses collapses
to a single pair match (credo complexity limit).
2026-04-14 08:26:42 -05:00
..
backfill_enqueue_worker_test.exs Give up on stuck :queued backfill contacts after 3 days 2026-04-13 17:20:18 -05:00
canadian_sounding_fetch_worker_test.exs Ingest Canadian radiosondes via UWYO + plans for RDPS/HRDPS 2026-04-13 09:14:34 -05:00
contact_weather_enqueue_worker_test.exs Fix credo warnings: struct specs, length/1, and test patterns 2026-04-12 10:26:53 -05:00
era5_fetch_worker_test.exs Batch ERA5 fetches by month and 2° tile 2026-04-09 13:01:49 -05:00
era5_month_batch_worker_test.exs Refresh propagation algo against expanded prod corpus (2026-04-13) 2026-04-13 10:59:01 -05:00
era5_poll_worker_test.exs Handle CDS "rejected" status + widen submit cap headroom 2026-04-14 08:26:42 -05:00
era5_submit_worker_test.exs Handle CDS "rejected" status + widen submit cap headroom 2026-04-14 08:26:42 -05:00
hrrr_fetch_worker_test.exs Add Tier 2 test coverage: SolarIndexWorker, HrrrFetchWorker, IemClient 2026-04-06 10:15:38 -05:00
hrrr_native_grid_worker_test.exs Phase 1 tasks 1.1-1.5: HRRR native hybrid-sigma ingestion 2026-04-09 16:23:51 -05:00
iemre_fetch_worker_test.exs Store stub records on empty weather fetches to prevent infinite backfill retries 2026-04-06 16:10:39 -05:00
propagation_prune_worker_test.exs Decouple propagation_scores pruning from the compute worker 2026-04-09 12:30:10 -05:00
solar_index_worker_test.exs Add type filter to backfill enqueue 2026-04-06 11:42:26 -05:00
terrain_profile_worker_test.exs Rename qsos table to contacts, qso_id to contact_id 2026-04-02 15:52:19 -05:00
weather_fetch_worker_test.exs Store stub records on empty weather fetches to prevent infinite backfill retries 2026-04-06 16:10:39 -05:00