Skip to content

Commit b54fb16

Browse files
committed
Fix cryptic error message for empty messages list in /chat/completions
- Add proper validation for empty messages array - Return clear error message instead of cryptic internal error - Fixes #2064"
1 parent 2c642fd commit b54fb16

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

lib/llm/src/http/service/openai.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,9 @@ async fn chat_completions(
413413
// and early return a 501 NOT_IMPLEMENTED status code. Otherwise, proceeed.
414414
validate_chat_completion_unsupported_fields(&request)?;
415415

416+
// Handle required fields like messages shouldn't be empty.
417+
validate_chat_completion_required_fields(&request)?;
418+
416419
// Apply template values if present
417420
if let Some(template) = template {
418421
if request.inner.model.is_empty() {
@@ -558,6 +561,22 @@ pub fn validate_chat_completion_unsupported_fields(
558561
Ok(())
559562
}
560563

564+
/// Validates that required fields are present and valid in the chat completion request
565+
pub fn validate_chat_completion_required_fields(
566+
request: &NvCreateChatCompletionRequest,
567+
) -> Result<(), ErrorResponse> {
568+
let inner = &request.inner;
569+
570+
if inner.messages.is_empty() {
571+
return Err(ErrorMessage::from_http_error(HttpError {
572+
code: 400,
573+
message: "The 'messages' field cannot be empty. At least one message is required.".to_string(),
574+
}));
575+
}
576+
577+
Ok(())
578+
}
579+
561580
/// OpenAI Responses Request Handler
562581
///
563582
/// This method will handle the incoming request for the /v1/responses endpoint.

0 commit comments

Comments
 (0)