-
-
Notifications
You must be signed in to change notification settings - Fork 671
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Description
When calling Files::retrieve($fileId) via the PHP SDK, intermittent 503 responses from the API edge (HTML “503 Service Temporarily Unavailable” from OpenAI's nginx) cause the transporter to attempt json_decode() on the HTML body. This triggers:
OpenAI\Exceptions\UnserializableResponse
Syntax error
vendor/openai-php/client/src/Transporters/HttpTransporter.php:62
Because the response isn’t JSON, the SDK error is misleading and hides the actual HTTP status/body. This makes handling/retrying 5xx conditions difficult.
Steps To Reproduce
-
Environment (example):
- PHP: 8.x
- SDK:
openai-php/client(latest at time of issue)
-
Code (minimal):
$fileId = 'file_XXXXXXXXXXXX'; // Repro: call retrieve on an existing file id $file = $client->files()->retrieve($fileId);
-
Intermittently, the API responds with a 503 HTML page (edge/nginx). If you dump the raw contents in the transporter you’ll see something like:
<html> <head><title>503 Service Temporarily Unavailable</title></head> <body> <center><h1>503 Service Temporarily Unavailable</h1></center> <hr><center>nginx</center> </body> </html>
-
The SDK attempts to
json_decode()this HTML and throws:OpenAI\Exceptions\UnserializableResponse (Syntax error) at vendor/openai-php/client/src/Transporters/HttpTransporter.php:62
OpenAI PHP Client Version
v0.16.0
PHP Version
8.4.6
Notes
-
The error originates here:
vendor/openai-php/client/src/Transporters/HttpTransporter.php:62- The transporter always tries to decode the body as JSON before considering that it might be an HTML error page.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working