Fix timer action 500s after FastAPI upgrade
FastAPI 0.141 raises when response serialization hits a lazy-load (current_block.subject.options) in async context, where 0.115 silently skipped it. Eager-load Subject.options in session get/timer and the TV dashboard queries. Pin pydantic 2.13.5. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
4130467b22
commit
5a2510059d
5 files changed
+10
-4
No files matched your search
@@ -156,6 +156,10 @@ This section was first blocked on backups. The user then asked for the HIGH find
|
||||
| homeschool_backend | homeschool-backend | sha256:51b49afb4ec4… |
|
||||
| homeschool_frontend | homeschool-frontend | sha256:f9a737699cda… |
|
||||
|
||||
### Post-deploy regression
|
||||
|
||||
After the HIGH deploy, `POST /api/sessions/{id}/timer` returned **500 on every call**: 8 failures, 0 successes, starting 06:43 UTC. FastAPI 0.141 raises on a failed lazy-load of `current_block.subject.options` during response serialization, where 0.115 silently skipped it. The first smoke test didn't cover timer actions. Fixed in v1.1.0 by eager-loading `Subject.options` in `sessions.py` and `dashboard.py`. The smoke test now covers the full timer lifecycle, the TV dashboard with an active block, schedule/subject writes, and every parameterless GET route (from the OpenAPI spec).
|
||||
|
||||
### Post-update scan (trivy HIGH/CRITICAL)
|
||||
|
||||
| Image | Before | After |
|
||||
|
||||
Reference in new issue
Block a user