
# AI SDK Errors

AI SDK errors let you handle expected failure modes without matching error
message strings.

## Importing Errors

The AI SDK Core package is named `ai`, not `@ai-sdk/ai`. It re-exports many
provider-level errors from `@ai-sdk/provider` together with the higher-level
errors raised by AI SDK Core:

```typescript
import { APICallError, NoObjectGeneratedError } from 'ai';
```

Provider implementations that depend directly on `@ai-sdk/provider` can import
provider-level errors from that package instead:

```typescript
import { APICallError, InvalidResponseDataError } from '@ai-sdk/provider';
```

## Migrating to Typed Error Handling

Replace message matching or an unconditionally generic `catch` block with the
most specific static `isInstance` guard available. Check `AISDKError` last when
you need a fallback for any AI SDK error:

```typescript
import { AISDKError, APICallError, generateText } from 'ai';

try {
  await generateText({
    model,
    prompt: 'Write a vegetarian lasagna recipe for 4 people.',
  });
} catch (error) {
  if (APICallError.isInstance(error)) {
    console.error('Provider request failed:', error.statusCode);
    return;
  }

  if (AISDKError.isInstance(error)) {
    console.error('AI SDK error:', error.name);
    return;
  }

  throw error;
}
```

Prefer `ErrorClass.isInstance(error)` over `error instanceof ErrorClass` when
the class provides a class-specific guard. The static guards use shared markers
and therefore work when multiple AI SDK package versions are loaded.

In AI SDK 5, `NoSpeechGeneratedError` and `UnsupportedModelVersionError` do not
provide class-specific guards. Use `instanceof` to distinguish those exact
classes. Their inherited `isInstance` method only checks whether a value is any
`AISDKError`.

The experimental transcription API can throw an
`AI_NoTranscriptGeneratedError`, but AI SDK 5 does not export its class. Handle
it with `AISDKError.isInstance(error)` and check `error.name`.

## Common Failure Modes

| Failure mode                                                                | Error to check                                                                                                                                                                                                                                                                                                   |
| --------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| A provider request fails because of a network error or non-success response | [`APICallError.isInstance(error)`](/docs/reference/ai-sdk-errors/ai-api-call-error)                                                                                                                                                                                                                              |
| Automatic retries fail after multiple attempts                              | [`RetryError.isInstance(error)`](/docs/reference/ai-sdk-errors/ai-retry-error)                                                                                                                                                                                                                                   |
| A structured object cannot be parsed or validated                           | [`NoObjectGeneratedError.isInstance(error)`](/docs/reference/ai-sdk-errors/ai-no-object-generated-error); inspect its `cause` with [`JSONParseError.isInstance`](/docs/reference/ai-sdk-errors/ai-json-parse-error) or [`TypeValidationError.isInstance`](/docs/reference/ai-sdk-errors/ai-type-validation-error) |
| A text stream finishes without producing an output step                     | `NoOutputGeneratedError.isInstance(error)`                                                                                                                                                                                                                                                                       |
| Image or speech generation returns no output                                | [`NoImageGeneratedError.isInstance(error)`](/docs/reference/ai-sdk-errors/ai-no-image-generated-error) or [`error instanceof NoSpeechGeneratedError`](/docs/reference/ai-sdk-errors/ai-no-speech-generated-error)                                                                                             |
| A model calls a missing tool or supplies invalid tool input                 | [`NoSuchToolError.isInstance(error)`](/docs/reference/ai-sdk-errors/ai-no-such-tool-error) or [`InvalidToolInputError.isInstance(error)`](/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error)                                                                                                           |
| Tool-call repair fails                                                      | [`ToolCallRepairError.isInstance(error)`](/docs/reference/ai-sdk-errors/ai-tool-call-repair-error)                                                                                                                                                                                                               |
| A provider or model cannot be resolved                                      | [`NoSuchProviderError.isInstance(error)`](/docs/reference/ai-sdk-errors/ai-no-such-provider-error) or [`NoSuchModelError.isInstance(error)`](/docs/reference/ai-sdk-errors/ai-no-such-model-error)                                                                                                              |
| A provider response is empty, malformed, or invalid                         | [`EmptyResponseBodyError.isInstance(error)`](/docs/reference/ai-sdk-errors/ai-empty-response-body-error), [`JSONParseError.isInstance(error)`](/docs/reference/ai-sdk-errors/ai-json-parse-error), or [`InvalidResponseDataError.isInstance(error)`](/docs/reference/ai-sdk-errors/ai-invalid-response-data-error) |
| The requested capability or model specification version is unsupported     | [`UnsupportedFunctionalityError.isInstance(error)`](/docs/reference/ai-sdk-errors/ai-unsupported-functionality-error) or [`error instanceof UnsupportedModelVersionError`](/docs/troubleshooting/unsupported-model-version)                                                                                   |

## Error Reference

This reference lists the error classes exported by the `ai` package.

### Base Error

- `AISDKError`: base class and broad type guard for AI SDK errors

### Provider Requests and Responses

- [`APICallError`](/docs/reference/ai-sdk-errors/ai-api-call-error)
- [`DownloadError`](/docs/reference/ai-sdk-errors/ai-download-error)
- [`EmptyResponseBodyError`](/docs/reference/ai-sdk-errors/ai-empty-response-body-error)
- [`InvalidPromptError`](/docs/reference/ai-sdk-errors/ai-invalid-prompt-error)
- [`InvalidResponseDataError`](/docs/reference/ai-sdk-errors/ai-invalid-response-data-error)
- [`JSONParseError`](/docs/reference/ai-sdk-errors/ai-json-parse-error)
- [`LoadAPIKeyError`](/docs/reference/ai-sdk-errors/ai-load-api-key-error)
- [`LoadSettingError`](/docs/reference/ai-sdk-errors/ai-load-setting-error)
- [`NoContentGeneratedError`](/docs/reference/ai-sdk-errors/ai-no-content-generated-error)
- [`NoSuchModelError`](/docs/reference/ai-sdk-errors/ai-no-such-model-error)
- [`RetryError`](/docs/reference/ai-sdk-errors/ai-retry-error)
- [`TooManyEmbeddingValuesForCallError`](/docs/reference/ai-sdk-errors/ai-too-many-embedding-values-for-call-error)
- [`TypeValidationError`](/docs/reference/ai-sdk-errors/ai-type-validation-error)
- [`UnsupportedFunctionalityError`](/docs/reference/ai-sdk-errors/ai-unsupported-functionality-error)

### Inputs and Messages

- [`InvalidArgumentError`](/docs/reference/ai-sdk-errors/ai-invalid-argument-error)
- [`InvalidDataContentError`](/docs/reference/ai-sdk-errors/ai-invalid-data-content-error)
- [`InvalidMessageRoleError`](/docs/reference/ai-sdk-errors/ai-invalid-message-role-error)
- `InvalidStreamPartError`
- [`MessageConversionError`](/docs/reference/ai-sdk-errors/ai-message-conversion-error)

### Generated Output

- [`NoImageGeneratedError`](/docs/reference/ai-sdk-errors/ai-no-image-generated-error)
- [`NoObjectGeneratedError`](/docs/reference/ai-sdk-errors/ai-no-object-generated-error)
- `NoOutputGeneratedError`
- [`NoOutputSpecifiedError`](/docs/reference/ai-sdk-errors/ai-no-output-specified-error)
- [`NoSpeechGeneratedError`](/docs/reference/ai-sdk-errors/ai-no-speech-generated-error)

### Tools

- [`InvalidToolInputError`](/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error)
- [`NoSuchToolError`](/docs/reference/ai-sdk-errors/ai-no-such-tool-error)
- [`ToolCallRepairError`](/docs/reference/ai-sdk-errors/ai-tool-call-repair-error)

### Provider Registry and Compatibility

- [`NoSuchProviderError`](/docs/reference/ai-sdk-errors/ai-no-such-provider-error)
- [`UnsupportedModelVersionError`](/docs/troubleshooting/unsupported-model-version)


## Navigation

- [AI SDK Core](/v5/docs/reference/ai-sdk-core)
  - [generateText](/v5/docs/reference/ai-sdk-core/generate-text)
  - [streamText](/v5/docs/reference/ai-sdk-core/stream-text)
  - [generateObject](/v5/docs/reference/ai-sdk-core/generate-object)
  - [streamObject](/v5/docs/reference/ai-sdk-core/stream-object)
  - [embed](/v5/docs/reference/ai-sdk-core/embed)
  - [embedMany](/v5/docs/reference/ai-sdk-core/embed-many)
  - [generateImage](/v5/docs/reference/ai-sdk-core/generate-image)
  - [transcribe](/v5/docs/reference/ai-sdk-core/transcribe)
  - [generateSpeech](/v5/docs/reference/ai-sdk-core/generate-speech)
  - [tool](/v5/docs/reference/ai-sdk-core/tool)
  - [dynamicTool](/v5/docs/reference/ai-sdk-core/dynamic-tool)
  - [experimental_createMCPClient](/v5/docs/reference/ai-sdk-core/create-mcp-client)
  - [Experimental_StdioMCPTransport](/v5/docs/reference/ai-sdk-core/mcp-stdio-transport)
  - [jsonSchema](/v5/docs/reference/ai-sdk-core/json-schema)
  - [zodSchema](/v5/docs/reference/ai-sdk-core/zod-schema)
  - [valibotSchema](/v5/docs/reference/ai-sdk-core/valibot-schema)
  - [ModelMessage](/v5/docs/reference/ai-sdk-core/model-message)
  - [UIMessage](/v5/docs/reference/ai-sdk-core/ui-message)
  - [validateUIMessages](/v5/docs/reference/ai-sdk-core/validate-ui-messages)
  - [safeValidateUIMessages](/v5/docs/reference/ai-sdk-core/safe-validate-ui-messages)
  - [createProviderRegistry](/v5/docs/reference/ai-sdk-core/provider-registry)
  - [customProvider](/v5/docs/reference/ai-sdk-core/custom-provider)
  - [cosineSimilarity](/v5/docs/reference/ai-sdk-core/cosine-similarity)
  - [wrapLanguageModel](/v5/docs/reference/ai-sdk-core/wrap-language-model)
  - [LanguageModelV2Middleware](/v5/docs/reference/ai-sdk-core/language-model-v2-middleware)
  - [extractReasoningMiddleware](/v5/docs/reference/ai-sdk-core/extract-reasoning-middleware)
  - [simulateStreamingMiddleware](/v5/docs/reference/ai-sdk-core/simulate-streaming-middleware)
  - [defaultSettingsMiddleware](/v5/docs/reference/ai-sdk-core/default-settings-middleware)
  - [stepCountIs](/v5/docs/reference/ai-sdk-core/step-count-is)
  - [hasToolCall](/v5/docs/reference/ai-sdk-core/has-tool-call)
  - [simulateReadableStream](/v5/docs/reference/ai-sdk-core/simulate-readable-stream)
  - [smoothStream](/v5/docs/reference/ai-sdk-core/smooth-stream)
  - [generateId](/v5/docs/reference/ai-sdk-core/generate-id)
  - [createIdGenerator](/v5/docs/reference/ai-sdk-core/create-id-generator)
- [AI SDK UI](/v5/docs/reference/ai-sdk-ui)
  - [useChat](/v5/docs/reference/ai-sdk-ui/use-chat)
  - [useCompletion](/v5/docs/reference/ai-sdk-ui/use-completion)
  - [useObject](/v5/docs/reference/ai-sdk-ui/use-object)
  - [convertToModelMessages](/v5/docs/reference/ai-sdk-ui/convert-to-model-messages)
  - [pruneMessages](/v5/docs/reference/ai-sdk-ui/prune-messages)
  - [createUIMessageStream](/v5/docs/reference/ai-sdk-ui/create-ui-message-stream)
  - [createUIMessageStreamResponse](/v5/docs/reference/ai-sdk-ui/create-ui-message-stream-response)
  - [pipeUIMessageStreamToResponse](/v5/docs/reference/ai-sdk-ui/pipe-ui-message-stream-to-response)
  - [readUIMessageStream](/v5/docs/reference/ai-sdk-ui/read-ui-message-stream)
  - [InferUITools](/v5/docs/reference/ai-sdk-ui/infer-ui-tools)
  - [InferUITool](/v5/docs/reference/ai-sdk-ui/infer-ui-tool)
- [AI SDK RSC](/v5/docs/reference/ai-sdk-rsc)
  - [streamUI](/v5/docs/reference/ai-sdk-rsc/stream-ui)
  - [createAI](/v5/docs/reference/ai-sdk-rsc/create-ai)
  - [createStreamableUI](/v5/docs/reference/ai-sdk-rsc/create-streamable-ui)
  - [createStreamableValue](/v5/docs/reference/ai-sdk-rsc/create-streamable-value)
  - [readStreamableValue](/v5/docs/reference/ai-sdk-rsc/read-streamable-value)
  - [getAIState](/v5/docs/reference/ai-sdk-rsc/get-ai-state)
  - [getMutableAIState](/v5/docs/reference/ai-sdk-rsc/get-mutable-ai-state)
  - [useAIState](/v5/docs/reference/ai-sdk-rsc/use-ai-state)
  - [useActions](/v5/docs/reference/ai-sdk-rsc/use-actions)
  - [useUIState](/v5/docs/reference/ai-sdk-rsc/use-ui-state)
  - [useStreamableValue](/v5/docs/reference/ai-sdk-rsc/use-streamable-value)
  - [render (Removed)](/v5/docs/reference/ai-sdk-rsc/render)
- [Stream Helpers](/v5/docs/reference/stream-helpers)
  - [AIStream](/v5/docs/reference/stream-helpers/ai-stream)
  - [StreamingTextResponse](/v5/docs/reference/stream-helpers/streaming-text-response)
  - [streamToResponse](/v5/docs/reference/stream-helpers/stream-to-response)
  - [OpenAIStream](/v5/docs/reference/stream-helpers/openai-stream)
  - [AnthropicStream](/v5/docs/reference/stream-helpers/anthropic-stream)
  - [AWSBedrockStream](/v5/docs/reference/stream-helpers/aws-bedrock-stream)
  - [AWSBedrockAnthropicStream](/v5/docs/reference/stream-helpers/aws-bedrock-anthropic-stream)
  - [AWSBedrockAnthropicMessagesStream](/v5/docs/reference/stream-helpers/aws-bedrock-messages-stream)
  - [AWSBedrockCohereStream](/v5/docs/reference/stream-helpers/aws-bedrock-cohere-stream)
  - [AWSBedrockLlama2Stream](/v5/docs/reference/stream-helpers/aws-bedrock-llama-2-stream)
  - [CohereStream](/v5/docs/reference/stream-helpers/cohere-stream)
  - [GoogleGenerativeAIStream](/v5/docs/reference/stream-helpers/google-generative-ai-stream)
  - [HuggingFaceStream](/v5/docs/reference/stream-helpers/hugging-face-stream)
  - [@ai-sdk/langchain Adapter](/v5/docs/reference/stream-helpers/langchain-adapter)
  - [@ai-sdk/llamaindex Adapter](/v5/docs/reference/stream-helpers/llamaindex-adapter)
  - [MistralStream](/v5/docs/reference/stream-helpers/mistral-stream)
  - [ReplicateStream](/v5/docs/reference/stream-helpers/replicate-stream)
  - [InkeepStream](/v5/docs/reference/stream-helpers/inkeep-stream)
- [AI SDK Errors](/v5/docs/reference/ai-sdk-errors)
  - [AI_APICallError](/v5/docs/reference/ai-sdk-errors/ai-api-call-error)
  - [AI_DownloadError](/v5/docs/reference/ai-sdk-errors/ai-download-error)
  - [AI_EmptyResponseBodyError](/v5/docs/reference/ai-sdk-errors/ai-empty-response-body-error)
  - [AI_InvalidArgumentError](/v5/docs/reference/ai-sdk-errors/ai-invalid-argument-error)
  - [AI_InvalidDataContentError](/v5/docs/reference/ai-sdk-errors/ai-invalid-data-content-error)
  - [AI_InvalidDataContent](/v5/docs/reference/ai-sdk-errors/ai-invalid-data-content)
  - [AI_InvalidMessageRoleError](/v5/docs/reference/ai-sdk-errors/ai-invalid-message-role-error)
  - [AI_InvalidPromptError](/v5/docs/reference/ai-sdk-errors/ai-invalid-prompt-error)
  - [AI_InvalidResponseDataError](/v5/docs/reference/ai-sdk-errors/ai-invalid-response-data-error)
  - [AI_InvalidToolInputError](/v5/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error)
  - [AI_JSONParseError](/v5/docs/reference/ai-sdk-errors/ai-json-parse-error)
  - [AI_LoadAPIKeyError](/v5/docs/reference/ai-sdk-errors/ai-load-api-key-error)
  - [AI_LoadSettingError](/v5/docs/reference/ai-sdk-errors/ai-load-setting-error)
  - [AI_MessageConversionError](/v5/docs/reference/ai-sdk-errors/ai-message-conversion-error)
  - [AI_NoContentGeneratedError](/v5/docs/reference/ai-sdk-errors/ai-no-content-generated-error)
  - [AI_NoImageGeneratedError](/v5/docs/reference/ai-sdk-errors/ai-no-image-generated-error)
  - [AI_NoObjectGeneratedError](/v5/docs/reference/ai-sdk-errors/ai-no-object-generated-error)
  - [AI_NoOutputSpecifiedError](/v5/docs/reference/ai-sdk-errors/ai-no-output-specified-error)
  - [AI_NoSpeechGeneratedError](/v5/docs/reference/ai-sdk-errors/ai-no-speech-generated-error)
  - [AI_NoSuchModelError](/v5/docs/reference/ai-sdk-errors/ai-no-such-model-error)
  - [AI_NoSuchProviderError](/v5/docs/reference/ai-sdk-errors/ai-no-such-provider-error)
  - [AI_NoSuchToolError](/v5/docs/reference/ai-sdk-errors/ai-no-such-tool-error)
  - [AI_NoTranscriptGeneratedError](/v5/docs/reference/ai-sdk-errors/ai-no-transcript-generated-error)
  - [AI_RetryError](/v5/docs/reference/ai-sdk-errors/ai-retry-error)
  - [AI_TooManyEmbeddingValuesForCallError](/v5/docs/reference/ai-sdk-errors/ai-too-many-embedding-values-for-call-error)
  - [ToolCallRepairError](/v5/docs/reference/ai-sdk-errors/ai-tool-call-repair-error)
  - [AI_TypeValidationError](/v5/docs/reference/ai-sdk-errors/ai-type-validation-error)
  - [AI_UnsupportedFunctionalityError](/v5/docs/reference/ai-sdk-errors/ai-unsupported-functionality-error)


[Full Sitemap](/sitemap.md)
