commit - 4150f8458ba83e3fd4eb3a9523584218c33c84d6
commit + babdd4d2b8a85b16001e26430738ef37618ebc3b
blob - 6bb5f30365904a29172c625e2f2822b92cfc77cd
blob + 4be5d03efeeaefac58d7d88f06598e9e031de60b
--- regress/openai/openai_test.c
+++ regress/openai/openai_test.c
"{\"error\":{\"message\":\"too many tokens\","
"\"type\":\"invalid_request_error\","
"\"code\":\"context_length_exceeded\"}}";
+ static const char code_only[] =
+ "{\"error\":{\"code\":\"context_length_exceeded\"}}";
+ static const char wrong_code_only[] =
+ "{\"error\":{\"code\":400}}";
static const char near[] =
"{\"error\":{\"message\":\"context_length_exceeded\","
"\"type\":\"invalid_request_error\","
CHECK(openai_error_body(overflow, sizeof(overflow) - 1, 413, out,
sizeof(out), &category) == 0);
CHECK(category == PROVIDER_ERROR_OTHER);
+ CHECK(openai_error_body(code_only, sizeof(code_only) - 1, 400, out,
+ sizeof(out), &category) == 0);
+ CHECK(strcmp(out, "error") == 0);
+ CHECK(category == PROVIDER_ERROR_CONTEXT_OVERFLOW);
+ CHECK(openai_error_body(code_only, sizeof(code_only) - 1, 413, out,
+ sizeof(out), &category) == 0);
+ CHECK(strcmp(out, "error") == 0);
+ CHECK(category == PROVIDER_ERROR_OTHER);
+ CHECK(openai_error_body(wrong_code_only,
+ sizeof(wrong_code_only) - 1, 400, out, sizeof(out), &category) ==
+ -1);
+ CHECK(category == PROVIDER_ERROR_OTHER);
CHECK(openai_error_body(near, sizeof(near) - 1, 400, out,
sizeof(out), &category) == 0);
CHECK(category == PROVIDER_ERROR_OTHER);
blob - b302cf0dda281f2c4069498406b0bdd470b64406
blob + 6783ec441207111db3d0f960a5412732d238a81f
--- src/common/openai_stream.c
+++ src/common/openai_stream.c
free(code);
code = NULL;
}
- if (rt < 0 || rm < 0 || (type == NULL && message == NULL)) {
+ if (rt < 0 || rm < 0 ||
+ (type == NULL && message == NULL && code == NULL)) {
free(type);
free(message);
free(code);