US production: /us/metadata returns 500 and state-region simulations fail with connection reset at the simulation gateway
Maintainer antworten meist innerhalb von 3 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Bug
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- github-actions, python, sqlalchemy
- Bereich
- api, backend, cloud, observability
Rechercherichtung
Beginne mit den Produktionslogs für GET /us/metadata und dem Pfad API → Gateway → Modal-Executor, insbesondere policyengine-simulation-py4-20-3, und vergleiche sie mit dem funktionierenden UK-Endpunkt. Verfolge, warum Anfragen nach der Persistence-Migration und den Cloud-Run-Änderungen weiterhin berechnet werden oder Verbindungs-Resets zurückgeben. Erledigt ist die Aufgabe, wenn US-Metadaten 200 zurückgeben, State-Region-Läufe abgeschlossen werden, nationale Läufe normal beendet werden und das Monitoring diese Pfade prüft.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Summary
The US v1 production stack is partially down, and monitoring can't see it because Better Stack only probes the API root (which returns 200):
GET /us/metadatareturns HTTP 500 — observed on 2026-08-06, 2026-08-15, and 2026-08-21 (every check)./uk/metadataand/return 200. The app's US parameter pages depend on this endpoint.- US state-region society-wide simulations fail —
GET /us/economy/{policy}/over/2?region=state/or&time_period=2027returns{"status": "error", "message": "[Errno 104] Connection reset by peer", "result": null}, consistently on retry. Previously cached state results now error too (the cached result is gone and the recompute fails). - National runs hang —
region=usrequests sit in"computing"for 10+ minutes (normal completion is a few minutes).
As of 2026-08-21 18:00 UTC, every executor app in the Modal main environment (policyengine-simulation-py4-18-*, py4-20-3, py4-22-0) and policyengine-simulation-gateway show deployed with 0 running tasks while the API reports runs computing — requests are not starting on Modal. The reset-by-peer surfaces at the API → gateway → executor hop for the route production uses (resolved_app_name: policyengine-simulation-py4-20-3 on completed runs from before the failure).
Timeline (all observations read-only, from outside)
- 2026-07-17: state runs healthy (e.g. policy 98001
state/or2027 → −$25.2M, stamped pe-us 1.764.6 /populace-us-2024-buildi-sparse…/policyengine-simulation-py4-20-3). - 2026-08-06:
/us/metadata500; state runs still complete with the identical stamp. - 2026-08-15:
/us/metadata500; state runs still complete. - 2026-08-21:
/us/metadata500; state runs fail with connection reset; national hangs.
Better Stack logged only two brief auto-resolved root incidents (8/7 09:14–09:19, 8/14 04:47–04:52) in the same window.
Repro
curl -s -o /dev/null -w "%{http_code}\n" https://api.policyengine.org/us/metadata # 500
curl -s -o /dev/null -w "%{http_code}\n" https://api.policyengine.org/uk/metadata # 200
curl -s "https://api.policyengine.org/us/economy/98001/over/2?region=state/or&time_period=2027"
# {"status": "error", "message": "[Errno 104] Connection reset by peer", "result": null}
Possibly related
- The metadata failure window starts after the v1 persistence migration to SQLAlchemy/Alembic (#3788, 8/12) and Cloud Run revision changes in sim-api (#657, 7/28) — correlation only; I have not looked at logs.
- #2430 (simulation-API 500s surface as
status: ok+result: null) describes the adjacent failure mode; this one at least surfaces asstatus: error. - Suggest adding
/us/metadataand a state-region simulation smoke to Better Stack — the root probe can't catch either.
User-facing impact: every state-level analysis on policyengine.org (US) currently fails; external partners sharing state reform links hit errors.
- Vorherrschende Sprache
- Python
- Sterne
- 18
- Forks
- 33
- Ø Merge
- 2 T. 16 Std.
- Gemergte PRs (30 T.)
- 53
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus PolicyEngine/policyengine-api
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
PolicyEngine/policyengine-api#4037 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 88/100
PolicyEngine/policyengine-api#3911 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 82/100
PolicyEngine/policyengine-api#3910 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Return a 400 for economy years the simulation service's model cannot projectEvtl. vergeben @anth-volk hat das heute übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
PolicyEngine/policyengine-api#4093 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Document UK breakdown results' withheld area codes, and stop serving breakdowns cached without themOffen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 43/100
PolicyEngine/policyengine-api#4091 ·
Maintainer antworten meist innerhalb von 3 Tagen
Alle Issues in PolicyEngine/policyengine-api
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
btclib-org/btclib-wallet#587 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Judgment-Pack/judgment-pack-spec#275 ·
Maintainer antworten meist innerhalb von 1 Tag
-
ai-generated
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 77/100
Maintainer antworten meist innerhalb von 1 Tag
-
documentation good first issue priority: low size: XS
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 92/100
yeongseon/azure-functions-doctor-python#651 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
Changaco/python-libarchive-c#146 ·