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

  1. Do not use the revai provider for image generation; switch to a vision-capable provider such as @ai-sdk/openai
  2. Call provider.transcriptionModel(...) instead — transcription is Rev.ai's supported capability
  3. 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

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.