Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 16 additions & 3 deletions src/memos/api/exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,26 @@ class APIExceptionHandler:
@staticmethod
async def validation_error_handler(request: Request, exc: RequestValidationError):
"""Handle request validation errors."""
logger.error(f"Validation error: {exc.errors()}")
errors = exc.errors()
path = request.url.path
method = request.method

readable_errors = []
for err in errors:
loc = " -> ".join(str(loc_i) for loc_i in err.get("loc", []))
readable_errors.append(
f"[{loc}] {err.get('msg', 'unknown error')} (type: {err.get('type', 'unknown')})"
)

logger.error(
f"Validation error on {method} {path}: {readable_errors}, raw errors: {errors}"
)
return JSONResponse(
status_code=422,
content={
"code": 422,
"message": "Parameter validation error",
"detail": exc.errors(),
"message": f"Parameter validation error on {method} {path}: {'; '.join(readable_errors)}",
"detail": errors,
"data": None,
},
)
Expand Down
Loading