Skip to content

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

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

Activity

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

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