fix(server): return {message} body for request validation errors

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-08 20:27:00 -07:00
parent eecf0836f7
commit 9984c162c6
2 changed files with 7 additions and 0 deletions

View File

@@ -2,6 +2,7 @@
import os import os
from fastapi import Depends, FastAPI, Header, HTTPException, Query from fastapi import Depends, FastAPI, Header, HTTPException, Query
from fastapi.exceptions import RequestValidationError
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
from . import actions, jobs, mf from . import actions, jobs, mf
@@ -23,6 +24,11 @@ async def _http_exc(_req, exc: HTTPException):
return JSONResponse(status_code=exc.status_code, content={"message": exc.detail}) return JSONResponse(status_code=exc.status_code, content={"message": exc.detail})
@app.exception_handler(RequestValidationError)
async def _validation_exc(_req, exc: RequestValidationError):
return JSONResponse(status_code=422, content={"message": "Invalid or missing request parameters."})
@app.get("/health") @app.get("/health")
def health(): def health():
return {"status": "ok"} return {"status": "ok"}

View File

@@ -45,6 +45,7 @@ def test_fetch_no_hits_returns_404(client, auth, monkeypatch):
def test_fetch_missing_q_returns_422(client, auth): def test_fetch_missing_q_returns_422(client, auth):
r = client.post("/fetch", headers=auth) r = client.post("/fetch", headers=auth)
assert r.status_code == 422 assert r.status_code == 422
assert "message" in r.json()
def test_job_lifecycle_done(client, auth, monkeypatch): def test_job_lifecycle_done(client, auth, monkeypatch):