Skip to content

fix(openapi): omit header and cookie params the model leaves null - #7099

Open
Kumaresan-AI-Engineer wants to merge 1 commit into
google:mainfrom
Kumaresan-AI-Engineer:fix/openapi-null-header-cookie-params
Open

Kumaresan-AI-Engineer wants to merge 1 commit into
google:mainfrom
Kumaresan-AI-Engineer:fix/openapi-null-header-cookie-params

Conversation

@Kumaresan-AI-Engineer

@Kumaresan-AI-Engineer Kumaresan-AI-Engineer commented Sep 12, 2026

Copy link
Copy Markdown

A model routinely emits null for an optional parameter it decided not to use. _prepare_request_params already drops such a value for a query parameter, but passed it through for header and cookie parameters:

  • httpx refuses to encode a None header value, so the whole tool call fails with "Header value must be str or bytes, not <class 'NoneType'>" before the request is ever sent, and the model gets no usable error to recover from.
  • httpx accepts a None cookie and serializes it as a bare, valueless Cookie: <name> pair, so the request goes out malformed and silently.

Skip both when the value is None, matching how an unset query parameter is already handled in the same loop. An explicitly empty string is still sent, so a caller can keep passing a deliberate empty value.

A model routinely emits null for an optional parameter it decided not to
use. _prepare_request_params already drops such a value for a query
parameter, but passed it through for header and cookie parameters:

- httpx refuses to encode a None header value, so the whole tool call
  fails with "Header value must be str or bytes, not <class 'NoneType'>"
  before the request is ever sent, and the model gets no usable error to
  recover from.
- httpx accepts a None cookie and serializes it as a bare, valueless
  `Cookie: <name>` pair, so the request goes out malformed and silently.

Skip both when the value is None, matching how an unset query parameter
is already handled in the same loop. An explicitly empty string is still
sent, so a caller can keep passing a deliberate empty value.
@google-cla

google-cla Bot commented Sep 12, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant