Skip to content

Commit eeb757b

Browse files
committed
Handle 400 Bad Request response
1 parent 5d4baad commit eeb757b

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/platform/src/Bridge/OpenAi/Gpt/ResultConverter.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ public function convert(RawResultInterface|RawHttpResult $result, array $options
5050
throw new AuthenticationException($errorMessage);
5151
}
5252

53+
if (400 === $response->getStatusCode()) {
54+
$errorMessage = json_decode($response->getContent(false), true)['error']['message'] ?? 'Bad Request';
55+
throw new RuntimeException($errorMessage);
56+
}
57+
5358
if (429 === $response->getStatusCode()) {
5459
$headers = $response->getHeaders(false);
5560
$resetTime = null;

src/platform/tests/Bridge/OpenAi/Gpt/ResultConverterTest.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,4 +196,21 @@ public function testThrowsExceptionForUnsupportedFinishReason()
196196

197197
$converter->convert(new RawHttpResult($httpResponse));
198198
}
199+
200+
public function testThrowsRuntimeExceptionOnBadRequest()
201+
{
202+
$converter = new ResultConverter();
203+
$httpResponse = self::createMock(ResponseInterface::class);
204+
$httpResponse->method('getStatusCode')->willReturn(400);
205+
$httpResponse->method('getContent')->willReturn(json_encode([
206+
'error' => [
207+
'message' => 'Bad Request: invalid parameters',
208+
],
209+
]));
210+
211+
$this->expectException(RuntimeException::class);
212+
$this->expectExceptionMessage('Bad Request: invalid parameters');
213+
214+
$converter->convert(new RawHttpResult($httpResponse));
215+
}
199216
}

0 commit comments

Comments
 (0)