{"record":{"id":"b608a93b175b75b0","repo":"vercel/ai","slug":"elevenlabs-does-not-provide-embedding-models","errorCode":null,"errorMessage":"ElevenLabs does not provide embedding models","messagePattern":"ElevenLabs does not provide embedding models","errorType":"exception","errorClass":"NoSuchModelError","httpStatus":null,"severity":"error","filePath":"packages/elevenlabs/src/elevenlabs-provider.ts","lineNumber":124,"sourceCode":"    };\n  };\n\n  provider.specificationVersion = 'v4' as const;\n  provider.transcription = createTranscriptionModel;\n  provider.transcriptionModel = createTranscriptionModel;\n  provider.speech = createSpeechModel;\n  provider.speechModel = createSpeechModel;\n\n  provider.languageModel = (modelId: string) => {\n    throw new NoSuchModelError({\n      modelId,\n      modelType: 'languageModel',\n      message: 'ElevenLabs does not provide language models',\n    });\n  };\n\n  provider.embeddingModel = (modelId: string) => {\n    throw new NoSuchModelError({\n      modelId,\n      modelType: 'embeddingModel',\n      message: 'ElevenLabs does not provide embedding models',\n    });\n  };\n  provider.textEmbeddingModel = provider.embeddingModel;\n\n  provider.imageModel = (modelId: string) => {\n    throw new NoSuchModelError({\n      modelId,\n      modelType: 'imageModel',\n      message: 'ElevenLabs does not provide image models',\n    });\n  };\n\n  return provider as ElevenLabsProvider;\n}\n","sourceCodeStart":106,"sourceCodeEnd":142,"githubUrl":"https://github.com/vercel/ai/blob/69428b1f8b037e4d118fb4853428d5c4e620493c/packages/elevenlabs/src/elevenlabs-provider.ts#L106-L142","documentation":"ElevenLabs does not offer an embeddings API, so its embeddingModel/textEmbeddingModel factories throw NoSuchModelError with the message 'ElevenLabs does not provide embedding models'. This enforces the provider's actual capability set (speech, transcription).","triggerScenarios":"Calling embed()/embedMany() with an ElevenLabs model or provider.embeddingModel('some-id') / textEmbeddingModel('some-id').","commonSituations":"RAG setups that iterate over all configured providers to build embeddings, or assuming a voice-AI vendor also provides embedding endpoints.","solutions":["Use an embedding-capable provider (e.g. @ai-sdk/openai, @ai-sdk/google, @ai-sdk/mistral, @ai-sdk/amazon-bedrock) for embed/embedMany.","Keep a dedicated embedding provider in your config separate from the ElevenLabs voice provider.","Check provider capabilities before resolving embedding models in generic code."],"exampleFix":"// before\nawait embed({ model: elevenlabs.embeddingModel('x'), value });\n\n// after\nawait embed({ model: openai.embedding('text-embedding-3-small'), value });","handlingStrategy":"validation","validationCode":"function supportsEmbeddings(provider: unknown): boolean {\n  return !/elevenlabs/i.test((provider as any)?.provider ?? '');\n}","typeGuard":"function isEmbeddingCapable(p: any): p is { embeddingModel: (id: string) => unknown } {\n  return typeof p?.embeddingModel === 'function' && !/elevenlabs/i.test(p?.provider ?? '');\n}","tryCatchPattern":"try {\n  await embed({ model: provider.embeddingModel(id), value });\n} catch (e) {\n  if (NoSuchModelError.isInstance(e) && e.modelType === 'embeddingModel') {\n    throw new Error('ElevenLabs has no embeddings; configure an embedding provider for RAG.');\n  }\n  throw e;\n}","preventionTips":["Dedicate a known embedding provider (OpenAI, Google, etc.) in your RAG config.","Never iterate 'all providers' for embeddings without a capability filter.","Document per-provider capabilities where providers are configured."],"tags":["provider-capability","embeddings","no-such-model"],"backgroundTag":"provider-does-not-support-model-type","analyzedSha":"69428b1f8b037e4d118fb4853428d5c4e620493c","analyzedAt":"2026-08-30T12:32:21.016Z","schemaVersion":2},"datasetVersion":"2026-08-30T13:17:10.514Z"}