You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Beta deploy verification fails on three US simulations, blocking prod deploys since 9 Oct #747
The "Deploy Simulation API" workflow has failed at Complete beta deployment / Verify deployed three-service stack on the last two merges to main, so prod deployment was skipped both times:
Both runs failed the same three US integration tests. Each simulation job comes back "status": "failed", "error": "Simulation failed (correlation_id=…)", on bundle policyengine 6.2.3, model 2.2.1, data populace-us-2024-spm-20260915 (SPM contract canonical-spm-v1, scenario ce_trend, county geography):
Every other beta job passed: the deploys and unit tests of the Modal executor, Cloud Run entrypoint and Modal gateway, plus Stage 12 v2 and routing. The UK paths aren't in the failing set.
Effect: nothing merged since 9 October is in production, including #741's fix (keep reform stop dates). The correlation ids should identify the worker-side exception in the executor logs. #726 (ACS-local data for US regional simulations) may be related to the region-model failure. I haven't checked that.
Found by the Budget CI W1 session while following #741's deploy.
Cause. I ran the failing request (country: us, region: state/ut, the refundable CTC reform, time_period: 2026) directly on the staging policyengine-simulation-py6-2-3 worker with the Modal SDK. It raises:
ValueError: Cannot map stored 'would_claim_wic' onto 'takes_up_wic_if_eligible' for 2024: the stored column has missing values.
policyengine/tax_benefit_models/us/legacy_inputs.py, _live_values (via apply_legacy_input_renames)
policyengine/tax_benefit_models/us/datasets.py, create_datasets / ensure_datasets
policyengine_simulation_executor/simulation_runtime.py, _load_dataset
So the worker fails while building the per-region US dataset, in policyengine 6.2.3's legacy-input rename. That is why the national default-model test passes and the state, region and budget-window tests fail.
Fix. It is not in policyengine-us 2.2.1 or the populace data, and not in sim-api's code. policyengine.py fixed it on 9 Oct in PolicyEngine/policyengine.py 48f3a784 and 4d2541d2: missing ACS WIC decisions are assumed claimed, and missing values anywhere else are still refused. The fix first shipped in policyengine 6.2.5. sim-api main still pins 6.2.3.
The updater's PR to 6.2.7, #746, carries the fix. It also moves:
UK from policyengine-uk 2.102.3 to 2.125.1;
UK data to 1.58.0.
Its checks are green and an independent review is running. I'll merge it when that agrees, watch the deploy, and close this issue only once beta verification passes and prod serves the new bundle. The US verification tests stay as they are.
Fixed by policyengine 6.3.4, deployed to production on 14 October.
Cause: from policyengine 6.2.2, US state and congressional-district regions used the ACS-local Populace dataset. Its SPM units lack a source-backed independent-minor role, so canonical SPM refused them (SPM_COMPOSITION_REQUIRED).
Production evidence (run 38545891000, on the #797 merge, da2e7f5: success at 12:17Z):
Beta "Verify deployed three-service stack" passed at 10:20Z. That includes the three tests that failed here: test_calculate_us_state_region_model and test_calculate_specific_model (both state/ut), and test_budget_window_multi_year_batch_completes. All three are beta_only, so prod does not run them.
Prod passed the stack verification (12:02Z), the authenticated deployment tests (12:10Z) and promotion (12:15Z).
Production /versions: policyengine latest 6.3.4, US 2.2.1, UK 2.126.12.
A per-release numerical sentinel against production is being added in #743 and #744.
Activity
MaxGhenis commentedon Oct 12, 2026
Taking this (W4 owns the sim-api deploy).
Cause. I ran the failing request (
country: us,region: state/ut, the refundable CTC reform,time_period: 2026) directly on the stagingpolicyengine-simulation-py6-2-3worker with the Modal SDK. It raises:So the worker fails while building the per-region US dataset, in policyengine 6.2.3's legacy-input rename. That is why the national default-model test passes and the state, region and budget-window tests fail.
Fix. It is not in policyengine-us 2.2.1 or the populace data, and not in sim-api's code. policyengine.py fixed it on 9 Oct in PolicyEngine/policyengine.py 48f3a784 and 4d2541d2: missing ACS WIC decisions are assumed claimed, and missing values anywhere else are still refused. The fix first shipped in policyengine 6.2.5. sim-api main still pins 6.2.3.
The updater's PR to 6.2.7, #746, carries the fix. It also moves:
Its checks are green and an independent review is running. I'll merge it when that agrees, watch the deploy, and close this issue only once beta verification passes and prod serves the new bundle. The US verification tests stay as they are.
MaxGhenis commentedon Oct 14, 2026
Fixed by policyengine 6.3.4, deployed to production on 14 October.
Production evidence (run 38545891000, on the #797 merge, da2e7f5: success at 12:17Z):
test_calculate_us_state_region_modelandtest_calculate_specific_model(bothstate/ut), andtest_budget_window_multi_year_batch_completes. All three arebeta_only, so prod does not run them./versions: policyengine latest 6.3.4, US 2.2.1, UK 2.126.12.A per-release numerical sentinel against production is being added in #743 and #744.