From 5d134d58d95a62b4e04a06ed017c42b6c345344a Mon Sep 17 00:00:00 2001 From: Kerem Yilmaz Date: Wed, 12 Jun 2024 12:39:05 -0700 Subject: [PATCH] web app handles pydantic validation error (#461) --- skyvern/forge/api_app.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/skyvern/forge/api_app.py b/skyvern/forge/api_app.py index af5f72c2..062644b5 100644 --- a/skyvern/forge/api_app.py +++ b/skyvern/forge/api_app.py @@ -3,9 +3,10 @@ from typing import Awaitable, Callable import structlog -from fastapi import APIRouter, FastAPI, Response +from fastapi import APIRouter, FastAPI, Response, status from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import JSONResponse +from pydantic import ValidationError from starlette.requests import HTTPConnection, Request from starlette_context.middleware import RawContextMiddleware from starlette_context.plugins.base import Plugin @@ -78,6 +79,10 @@ def start_scheduler() -> None: async def handle_skyvern_http_exception(request: Request, exc: SkyvernHTTPException) -> JSONResponse: return JSONResponse(status_code=exc.status_code, content={"detail": exc.message}) + @app.exception_handler(ValidationError) + async def handle_pydantic_validation_error(request: Request, exc: ValidationError) -> JSONResponse: + return JSONResponse(status_code=status.HTTP_422_UNPROCESSABLE_ENTITY, content={"detail": str(exc)}) + @app.exception_handler(Exception) async def unexpected_exception(request: Request, exc: Exception) -> JSONResponse: LOG.exception("Unexpected error in agent server.", exc_info=exc)