From 34e770f1e39179ea013a49ca5315245b5e05b289 Mon Sep 17 00:00:00 2001 From: ZaneNi Date: Wed, 18 Feb 2026 13:24:34 -0500 Subject: [PATCH] feat: add error code for server mode --- src/server/rest_handler.cpp | 8 +++++++- src/server/server.cpp | 17 ++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/server/rest_handler.cpp b/src/server/rest_handler.cpp index f462de13..a6ba729a 100644 --- a/src/server/rest_handler.cpp +++ b/src/server/rest_handler.cpp @@ -836,7 +836,13 @@ void RestHandler::handle_openai_chat_completion(const json& request, header_print("FLM", "Start prefill..."); bool success = auto_chat_engine->insert(meta_info, uniformed_input); if (!success) { - json error_response = { {"error", "Max length reached"} }; + json error_response = { + {"error", { + {"message", "Max length reached!"}, + {"type", "model_error"}, + {"code", 400} + }} + }; send_response(error_response); return; } diff --git a/src/server/server.cpp b/src/server/server.cpp index 8b3f5e07..219c9eb5 100644 --- a/src/server/server.cpp +++ b/src/server/server.cpp @@ -664,7 +664,22 @@ bool WebServer::handle_request(http::request& req, // catch is_deferred auto send_response = [&res, session, this, request_id, needs_npu, is_deferred](const json& response_data) { - res.result(http::status::ok); + http::status status = http::status::ok; + + if (response_data.contains("error") && + response_data["error"].contains("code")) + { + int code = response_data["error"]["code"].get(); + + if (code == 400) { + status = http::status::bad_request; + } + //else if () { + + //} + } + + res.result(status); res.body() = response_data.dump(); res.set(http::field::content_type, "application/json"); res.prepare_payload();