Skip to content

[Bug]: Passing invalid parameters to gemini throws Undefined array key "choices" /www/htdocs/vendor/openai-php/client/src/Responses/Chat/CreateResponse.php 54 #692

Description

@alxlab-zone66x

Description

While testing gemini I noticed that passing invalid chat parameters doesn't throw the appropriate exception. It throws:

Undefined array key "choices" /www/htdocs/vendor/openai-php/client/src/Responses/Chat/CreateResponse.php 54

The reason the error isn't caught is because the error is returned as:

 array (
  0 =>
  array (
    'error' =>
    array (
      'code' => 400,
      'message' => 'Invalid JSON payload received. Unknown name "ddd": Cannot find field.',
      'status' => 'INVALID_ARGUMENT',
      'details' =>
      array (
        0 =>
        array (
          '@type' => 'type.googleapis.com/google.rpc.BadRequest',
          'fieldViolations' =>
          array (
            0 =>
            array (
              'description' => 'Invalid JSON payload received. Unknown name "ddd": Cannot find field.',
            ),
          ),
        ),
      ),
    ),
  ),
)

The HttpTransporter::throwIfJsonError() only checks for $response['error'], but in this case it's $response[0]['error'].

Steps To Reproduce

 $client  = \OpenAI::factory()
    ->withApiKey('YOUR-KEY')
    ->withBaseUri('https://generativelanguage.googleapis.com/v1beta/openai')
    ->make();
$result = $client->chat()->create($params = [
    'model' => 'gemini-2.5-flash',
    'messages' => [
        ['role' => 'system', 'content' => 'You can use tools if needed.'],
        ['role' => 'user', 'content' => 'Hello you.'],
    ],
    'ddd' => 'auto',
  ]);

OpenAI PHP Client Version

v0.16.1

PHP Version

8.2.5

Notes

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions