main
py 24 lines 721 Bytes
Raw
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4 from fastapi import Request
5 from starlette.responses import JSONResponse
6
7 from vllm.logger import init_logger
8
9 from ..error_response import create_error_response
10
11 logger = init_logger(__name__)
12
13
14 async def exception_handler(req: Request, exc: Exception):
15 if req.app.state.args.log_error_stack:
16 logger.error(
17 "Exception caught. Request id: %s",
18 req.state.request_metadata.request_id
19 if hasattr(req.state, "request_metadata")
20 else None,
21 )
22
23 err = create_error_response(exc)
24 return JSONResponse(err.model_dump(), status_code=err.error.code)