vercel/ai · error · NoSuchModelError
Rev.ai does not provide image models
Error message
Rev.ai does not provide image models
What it means
The Rev.ai provider does not implement image models, so its provider object throws NoSuchModelError whenever imageModel() is called. Rev.ai is a speech-to-text service; the provider only supports transcription (and related) capabilities. This error is thrown eagerly to give a clear message instead of failing later with an unclear error.
Source
Thrown at packages/revai/src/revai-provider.ts:107
provider.languageModel = () => {
throw new NoSuchModelError({
modelId: 'unknown',
modelType: 'languageModel',
message: 'Rev.ai does not provide language models',
});
};
provider.embeddingModel = () => {
throw new NoSuchModelError({
modelId: 'unknown',
modelType: 'embeddingModel',
message: 'Rev.ai does not provide text embedding models',
});
};
provider.textEmbeddingModel = provider.embeddingModel;
provider.imageModel = () => {
throw new NoSuchModelError({
modelId: 'unknown',
modelType: 'imageModel',
message: 'Rev.ai does not provide image models',
});
};
return provider as RevaiProvider;
}
/**
* Default Rev.ai provider instance.
*/
export const revai = createRevai();
View on GitHub (pinned to 69428b1f8b)
Solutions
- Do not use the revai provider for image generation; switch to a vision-capable provider such as @ai-sdk/openai
- Call provider.transcriptionModel(...) instead — transcription is Rev.ai's supported capability
- Guard capability checks before calling imageModel on an arbitrary provider
Example fix
// before
const model = revai.imageModel('dalle');
// after
const model = revai.transcriptionModel('general'); Defensive patterns
Strategy: fallback
Validate before calling
function supportsImageModels(provider) {
try { provider.imageModel('probe'); return false; } catch (e) { return !(e && e.name === 'NoSuchModelError'); }
}
// simpler: consult provider docs/capabilities before wiring Type guard
function isNoSuchModelError(e) {
return typeof e === 'object' && e !== null && e.name === 'NoSuchModelError' && 'modelType' in e;
} Try / catch
let model;
try { model = provider.imageModel(id); }
catch (e) { if (e.name === 'NoSuchModelError') model = fallbackProvider.imageModel(id); else throw e; } Prevention
- Check each provider's supported capabilities before wiring it into multi-capability pipelines
- Use transcriptionModel for revai; reserve imageModel for vision providers
- Centralize provider/model selection in a capability-aware registry
When it happens
Trigger: Calling provider.imageModel('some-model') or passing the revai provider to an API that resolves an image model (e.g. generateImage with provider.imageModel), or using a default image model resolution path.
Common situations: Developers assume the provider supports the full LanguageModel surface and plug it into generateImage or a multi-capability pipeline; config mistakes where the wrong provider is wired for image generation.
Related errors
AI-assisted analysis of vercel/ai@69428b1f8b (2026-08-30).
Data as JSON: /api/errors/3af519040a616171.
Report an issue: GitHub.