A high-throughput and memory-efficient inference and serving engine for LLMs
Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git
Synced Nov 8, 06:15 UTC
[bugfix] Fix critical bug when reporting for all paths where handler.create_error_response is used (#34516)
Signed-off-by: Stanislav Kirillov <stas@nebius.com> Co-authored-by: Stanislav Kirillov <stas@nebius.com> Co-authored-by: Cyrus Leung <tlleungac@connect.ust.hk>
Stanislav Kirillov committed
Feb 15, 2026 at 12:24 UTC
50dbd6c9e6637589b404a499dbc34df85ad9b1ad
9 files changed
+14
-14
vllm/entrypoints/openai/chat_completion/api_router.py
+2
-2
@@ -57,7 +57,7 @@ async def create_chat_completion(request: ChatCompletionRequest, raw_request: Re
57
try:
58
generator = await handler.create_chat_completion(request, raw_request)
59
except Exception as e:
60
- return handler.create_error_response(e)
60
+ generator = handler.create_error_response(e)
61
62
if isinstance(generator, ErrorResponse):
63
return JSONResponse(
@@ -96,7 +96,7 @@ async def render_chat_completion(request: ChatCompletionRequest, raw_request: Re
96
try:
97
result = await handler.render_chat_request(request)
98
except Exception as e:
99
- return handler.create_error_response(e)
99
+ result = handler.create_error_response(e)
100
101
if isinstance(result, ErrorResponse):
102
return JSONResponse(content=result.model_dump(), status_code=result.error.code)
vllm/entrypoints/openai/completion/api_router.py
+2
-2
@@ -57,7 +57,7 @@ async def create_completion(request: CompletionRequest, raw_request: Request):
57
try:
58
generator = await handler.create_completion(request, raw_request)
59
except Exception as e:
60
- return handler.create_error_response(e)
60
+ generator = handler.create_error_response(e)
61
62
if isinstance(generator, ErrorResponse):
63
return JSONResponse(
@@ -94,7 +94,7 @@ async def render_completion(request: CompletionRequest, raw_request: Request):
94
try:
95
result = await handler.render_completion_request(request)
96
except Exception as e:
97
- return handler.create_error_response(e)
97
+ result = handler.create_error_response(e)
98
99
if isinstance(result, ErrorResponse):
100
return JSONResponse(content=result.model_dump(), status_code=result.error.code)
vllm/entrypoints/openai/responses/api_router.py
+3
-3
@@ -66,7 +66,7 @@ async def create_responses(request: ResponsesRequest, raw_request: Request):
66
try:
67
generator = await handler.create_responses(request, raw_request)
68
except Exception as e:
69
- return handler.create_error_response(e)
69
+ generator = handler.create_error_response(e)
70
71
if isinstance(generator, ErrorResponse):
72
return JSONResponse(
@@ -102,7 +102,7 @@ async def retrieve_responses(
102
stream=stream,
103
)
104
except Exception as e:
105
- return handler.create_error_response(e)
105
+ response = handler.create_error_response(e)
106
107
if isinstance(response, ErrorResponse):
108
return JSONResponse(
@@ -128,7 +128,7 @@ async def cancel_responses(response_id: str, raw_request: Request):
128
try:
129
response = await handler.cancel_responses(response_id)
130
except Exception as e:
131
- return handler.create_error_response(e)
131
+ response = handler.create_error_response(e)
132
133
if isinstance(response, ErrorResponse):
134
return JSONResponse(
vllm/entrypoints/pooling/classify/api_router.py
+1
-1
@@ -35,7 +35,7 @@ async def create_classify(request: ClassificationRequest, raw_request: Request):
35
try:
36
generator = await handler.create_classify(request, raw_request)
37
except Exception as e:
38
- return handler.create_error_response(e)
38
+ generator = handler.create_error_response(e)
39
40
if isinstance(generator, ErrorResponse):
41
return JSONResponse(
vllm/entrypoints/pooling/embed/api_router.py
+1
-1
@@ -64,7 +64,7 @@ async def create_embedding(
64
try:
65
generator = await handler.create_embedding(request, raw_request)
66
except Exception as e:
67
- return handler.create_error_response(e)
67
+ generator = handler.create_error_response(e)
68
69
if isinstance(generator, ErrorResponse):
70
return JSONResponse(
vllm/entrypoints/pooling/pooling/api_router.py
+1
-1
@@ -44,7 +44,7 @@ async def create_pooling(request: PoolingRequest, raw_request: Request):
44
try:
45
generator = await handler.create_pooling(request, raw_request)
46
except Exception as e:
47
- return handler.create_error_response(e)
47
+ generator = handler.create_error_response(e)
48
49
if isinstance(generator, ErrorResponse):
50
return JSONResponse(
vllm/entrypoints/pooling/score/api_router.py
+2
-2
@@ -52,7 +52,7 @@ async def create_score(request: ScoreRequest, raw_request: Request):
52
try:
53
generator = await handler.create_score(request, raw_request)
54
except Exception as e:
55
- return handler.create_error_response(e)
55
+ generator = handler.create_error_response(e)
56
57
if isinstance(generator, ErrorResponse):
58
return JSONResponse(
@@ -103,7 +103,7 @@ async def do_rerank(request: RerankRequest, raw_request: Request):
103
try:
104
generator = await handler.do_rerank(request, raw_request)
105
except Exception as e:
106
- return handler.create_error_response(e)
106
+ generator = handler.create_error_response(e)
107
108
if isinstance(generator, ErrorResponse):
109
return JSONResponse(
vllm/entrypoints/serve/disagg/api_router.py
+1
-1
@@ -67,7 +67,7 @@ async def generate(request: GenerateRequest, raw_request: Request):
67
try:
68
generator = await handler.serve_tokens(request, raw_request)
69
except Exception as e:
70
- return handler.create_error_response(e)
70
+ generator = handler.create_error_response(e)
71
72
if isinstance(generator, ErrorResponse):
73
return JSONResponse(
vllm/entrypoints/serve/tokenize/api_router.py
+1
-1
@@ -52,7 +52,7 @@ async def tokenize(request: TokenizeRequest, raw_request: Request):
52
try:
53
generator = await handler.create_tokenize(request, raw_request)
54
except Exception as e:
55
- return handler.create_error_response(e)
55
+ generator = handler.create_error_response(e)
56
57
if isinstance(generator, ErrorResponse):
58
return JSONResponse(