vercel/ai · error · Error

Unsupported role: ${_exhaustiveCheck}

Error message

Unsupported role: ${_exhaustiveCheck}

What it means

Error "Unsupported role: ${_exhaustiveCheck}" thrown in vercel/ai.

Source

Thrown at packages/cohere/src/convert-to-cohere-chat-prompt.ts:194

                case 'json':
                case 'error-json':
                  contentValue = JSON.stringify(output.value);
                  break;
              }

              return {
                role: 'tool' as const,
                content: contentValue,
                tool_call_id: toolResult.toolCallId,
              };
            }),
        );

        break;
      }
      default: {
        const _exhaustiveCheck: never = role;
        throw new Error(`Unsupported role: ${_exhaustiveCheck}`);
      }
    }
  }

  return { messages, documents, warnings };
}

function buildImageUrl({ part }: { part: LanguageModelV4FilePart }): string {
  switch (part.data.type) {
    case 'url': {
      return part.data.url.toString();
    }
    case 'data': {
      return `data:${resolveFullMediaType({ part })};base64,${convertToBase64(part.data.data)}`;
    }
    case 'reference': {
      throw new UnsupportedFunctionalityError({
        functionality: 'image file parts with provider references',

View on GitHub (pinned to 69428b1f8b)

When it happens

Trigger: Thrown at packages/cohere/src/convert-to-cohere-chat-prompt.ts:194 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of vercel/ai@69428b1f8b (2026-08-30). Data as JSON: /api/errors/aa2401397b75118e. Report an issue: GitHub.