{"record":{"id":"3af519040a616171","repo":"vercel/ai","slug":"rev-ai-does-not-provide-image-models","errorCode":null,"errorMessage":"Rev.ai does not provide image models","messagePattern":"Rev\\.ai does not provide image models","errorType":"exception","errorClass":"NoSuchModelError","httpStatus":null,"severity":"error","filePath":"packages/revai/src/revai-provider.ts","lineNumber":107,"sourceCode":"  provider.languageModel = () => {\n    throw new NoSuchModelError({\n      modelId: 'unknown',\n      modelType: 'languageModel',\n      message: 'Rev.ai does not provide language models',\n    });\n  };\n\n  provider.embeddingModel = () => {\n    throw new NoSuchModelError({\n      modelId: 'unknown',\n      modelType: 'embeddingModel',\n      message: 'Rev.ai does not provide text embedding models',\n    });\n  };\n  provider.textEmbeddingModel = provider.embeddingModel;\n\n  provider.imageModel = () => {\n    throw new NoSuchModelError({\n      modelId: 'unknown',\n      modelType: 'imageModel',\n      message: 'Rev.ai does not provide image models',\n    });\n  };\n\n  return provider as RevaiProvider;\n}\n\n/**\n * Default Rev.ai provider instance.\n */\nexport const revai = createRevai();\n","sourceCodeStart":89,"sourceCodeEnd":121,"githubUrl":"https://github.com/vercel/ai/blob/69428b1f8b037e4d118fb4853428d5c4e620493c/packages/revai/src/revai-provider.ts#L89-L121","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before\nconst model = revai.imageModel('dalle');\n// after\nconst model = revai.transcriptionModel('general');","handlingStrategy":"fallback","validationCode":"function supportsImageModels(provider) {\n  try { provider.imageModel('probe'); return false; } catch (e) { return !(e && e.name === 'NoSuchModelError'); }\n}\n// simpler: consult provider docs/capabilities before wiring","typeGuard":"function isNoSuchModelError(e) {\n  return typeof e === 'object' && e !== null && e.name === 'NoSuchModelError' && 'modelType' in e;\n}","tryCatchPattern":"let model;\ntry { model = provider.imageModel(id); }\ncatch (e) { if (e.name === 'NoSuchModelError') model = fallbackProvider.imageModel(id); else throw e; }","preventionTips":["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"],"tags":["provider-capability","unsupported-model","image-generation","revai"],"backgroundTag":"unsupported-model-type","analyzedSha":"69428b1f8b037e4d118fb4853428d5c4e620493c","analyzedAt":"2026-08-30T12:32:21.016Z","schemaVersion":2},"datasetVersion":"2026-08-30T13:17:10.514Z"}