Skip to content

Add graceful fallback for missing response.id from NVIDIA NIM #6290

@chindris-mihai-alexandru

Description

Description
OpenCode crashes with AI_InvalidResponseDataError: Expected "id" to be a string when the NVIDIA NIM endpoint returns a tool‑call response without an id field.

Reproduction steps

  1. Obtain a valid NVIDIA_NIM_KEY.
  2. Run the curl command from the NVIDIA issue (see that issue for the exact command).
  3. The raw JSON response from NIM does not contain an id property.
  4. OpenCode validates the payload and throws the error.

Expected behaviour
If the id field is missing or not a string, the integration should automatically generate a temporary UUID (e.g., msg_<uuid>) and continue processing instead of aborting.

Suggested implementation

function normalizeMistralResponse(resp: any): any {
  if (!resp.id || typeof resp.id !== "string") {
    resp.id = `msg_${crypto.randomUUID()}`;
  }
  return resp;
}

Add this guard before any SDK validation that expects id.

Impact
All users who call any NVIDIA NIM model from OpenCode will stop crashing.

Environment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions