Return a 400 for economy years the simulation service's model cannot project
维护者通常 3 天内回复
评估
调研方向
Start in country.py to see how economy_options.time_period is built, then inspect the API's handling of simulation service error codes, especially the SPM input codes. Check the linked PolicyEngine/policyengine-sim-api#969 for the stable error code and message contract. Done means DATASET_YEAR_UNAVAILABLE maps to a readable 400 response and UK metadata years follow the installed model projection; preserve current behavior for unknown codes and services that omit the code.
由索引模型根据 Issue 内容生成。
描述
Problem
A society-wide (economy) request for a year the simulation service's model cannot project its dataset to returns 502, and the failure is stored and replayed for 30 days as a computation failure.
- policyengine-uk projects its UK dataset (data year 2024) only to 2032 (2030 before policyengine-uk 2.130.1). A UK request for 2033 fails in the simulation service. Its job-status endpoint returns 500, and
get_economic_impactreturns 502 with "Simulation entrypoint execution failed: Simulation failed (correlation_id=…)". Every retry returns the same stored failure. - This happened on 2026-10-15 for 2031–2035 and on 2026-10-26 for 2033–2039.
- The UK years in the country metadata (
economy_options.time_period, built incountry.py) still stop at 2030. The app reads that list.
Intended change
- The simulation service will answer such a job with 400 and the stable code
DATASET_YEAR_UNAVAILABLE(PolicyEngine/policyengine-sim-api#969). Map that code to a 400 with the service's readable message, such as "UK results are available for 2024 to 2032", in the same way as the SPM input codes. - Keep today's behaviour for unknown codes, and for a simulation service that doesn't send the code yet.
- Make the UK metadata years follow the installed policyengine-uk's projection, so the list runs to 2032 now and moves with the model.
This is the Public API part of a change that also touches the simulation service and the app.
- 主要语言
- Python
- 星标
- 18
- 派生
- 33
- 平均合并
- 2 天 16 小时
- 30 天内合并 PR
- 53
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
PolicyEngine/policyengine-api 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
PolicyEngine/policyengine-api#4037 ·
维护者通常 3 天内回复
-
难度 1/5 1-3 小时 新手友好度 88/100
PolicyEngine/policyengine-api#3911 ·
维护者通常 3 天内回复
-
难度 1/5 1 小时以内 新手友好度 82/100
PolicyEngine/policyengine-api#3910 ·
维护者通常 3 天内回复
-
Document UK breakdown results' withheld area codes, and stop serving breakdowns cached without them可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 4/5 3-5 天 新手友好度 43/100
PolicyEngine/policyengine-api#4091 ·
维护者通常 3 天内回复
-
Telemetry error report splits a simulation worker failure between its exception and the recorded copy可能已有人在做 @anth-volk 今天认领。 未关闭bug
难度 3/5 1-2 天 新手友好度 20/100
PolicyEngine/policyengine-api#4088 ·
维护者通常 3 天内回复
查看 PolicyEngine/policyengine-api 的全部 Issue
相似的 Issue
-
难度 1/5 1 小时以内 新手友好度 72/100
521xueweihan/HelloGitHub#4150 ·
-
难度 2/5 1-3 小时 新手友好度 74/100
aws-samples/sample-per-model-bedrock#595 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 85/100
维护者通常 1 天内回复
-
bug connectors
难度 1/5 1 小时以内 新手友好度 67/100
pyinfra-dev/pyinfra#2036 ·
维护者通常 9 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复