vercel/ai · error · NoSuchModelError
No such languageModel: ${modelId}
Error message
No such languageModel: ${modelId} What it means
The @ai-sdk/quiverai provider does not implement language models: its provider object's languageModel factory intentionally throws NoSuchModelError for every modelId. Only image/embedding models are supported. Requesting a language model (e.g. via provider('some-model') or provider.languageModel(...)) always fails.
Source
Thrown at packages/quiverai/src/quiverai-provider.ts:105
provider: 'quiverai.image',
baseURL,
headers: getHeaders,
fetch: options.fetch,
});
const embeddingModel = (modelId: string) => {
throw new NoSuchModelError({
modelId,
modelType: 'embeddingModel',
});
};
return {
specificationVersion: 'v4',
image: createImageModel,
imageModel: createImageModel,
languageModel: (modelId: string) => {
throw new NoSuchModelError({
modelId,
modelType: 'languageModel',
});
},
embeddingModel,
textEmbeddingModel: embeddingModel,
};
}
export const quiverai = createQuiverAI();
View on GitHub (pinned to 69428b1f8b)
Solutions
- Use the supported surfaces: quiverai.image(...) / quiverai.imageModel or quiverai.textEmbeddingModel(...) with generateImage/embed
- Switch to a provider package that implements language models (openai, anthropic, google, etc.) for generateText/streamText
- Check the package README/docs to confirm which model types quiverai supports
- Verify you imported the intended provider (not quiverai) in your text-generation code
Example fix
// before
const model = quiverai('quiver-large');
await generateText({ model, prompt: 'hi' });
// after (supported usage)
await generateImage({ model: quiverai.image('quiver-image'), prompt: 'a cat' }); Defensive patterns
Strategy: type-guard
Validate before calling
import type { LanguageModelV4 } from '@ai-sdk/provider';
function supportsLanguageModel(provider: unknown): boolean {
try {
provider?.languageModel?.('probe');
return true;
} catch {
return false;
}
} Type guard
function isLanguageModelCapable(provider: { languageModel?: (id: string) => unknown }): boolean {
try {
provider.languageModel?.('__probe__');
return true;
} catch {
return false;
}
} Try / catch
try {
const model = quiverai('some-model');
} catch (error) {
if (NoSuchModelError.isInstance?.(error)) {
console.error('quiverai does not support language models; use quiverai.image()/textEmbeddingModel() or another provider');
}
throw error;
} Prevention
- Check each provider package's supported model types before wiring it into text APIs
- Use image/embedding entry points (provider.image(...), provider.textEmbeddingModel(...)) for this provider
- Add an integration smoke test that builds the model for each API surface you use
When it happens
Trigger: Any call like quiverai('my-model'), quiverai.languageModel('my-model'), or passing the provider where a LanguageModelV4 is expected (generateText/streamText with this provider).
Common situations: Assuming the package supports text generation because most @ai-sdk providers do; copy-pasting provider setup code from another provider; passing the quiverai provider to chat/text APIs instead of image/embedding APIs.
Related errors
- No video generated.
- Unsupported role: ${_exhaustiveCheck}
- The Bedrock Mantle model function cannot be called with the
- The Anthropic AWS model function cannot be called with the n
- ${error.message}
AI-assisted analysis of vercel/ai@69428b1f8b (2026-08-30).
Data as JSON: /api/errors/f92384d87349802c.
Report an issue: GitHub.