{"record":{"id":"604296f38a07e49b","repo":"vercel/ai","slug":"ai-nosuchmodelerror-604296","errorCode":"AI_NoSuchModelError","errorMessage":"No such embeddingModel: ${modelId}","messagePattern":"No such embeddingModel: (.+?)","errorType":"exception","errorClass":"NoSuchModelError","httpStatus":null,"severity":"error","filePath":"packages/black-forest-labs/src/black-forest-labs-provider.ts","lineNumber":121,"sourceCode":"      baseURL: baseURL ?? defaultBaseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n      pollIntervalMillis: options.pollIntervalMillis,\n      pollTimeoutMillis: options.pollTimeoutMillis,\n    });\n\n  const createVideoModel = (modelId: BlackForestLabsVideoModelId) =>\n    new BlackForestLabsVideoModel(modelId, {\n      provider: 'black-forest-labs.video',\n      baseURL: baseURL ?? defaultBaseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n      pollIntervalMillis: options.pollIntervalMillis,\n      pollTimeoutMillis: options.pollTimeoutMillis,\n    });\n\n  const embeddingModel = (modelId: string) => {\n    throw new NoSuchModelError({\n      modelId,\n      modelType: 'embeddingModel',\n    });\n  };\n\n  return {\n    specificationVersion: 'v4',\n    imageModel: createImageModel,\n    image: createImageModel,\n    videoModel: createVideoModel,\n    video: createVideoModel,\n    languageModel: (modelId: string) => {\n      throw new NoSuchModelError({\n        modelId,\n        modelType: 'languageModel',\n      });\n    },\n    embeddingModel,","sourceCodeStart":103,"sourceCodeEnd":139,"githubUrl":"https://github.com/vercel/ai/blob/69428b1f8b037e4d118fb4853428d5c4e620493c/packages/black-forest-labs/src/black-forest-labs-provider.ts#L103-L139","documentation":"The Black Forest Labs provider only implements image and video models. Its `embeddingModel` factory deliberately throws `NoSuchModelError` (code AI_NoSuchModelError) for any modelId, because BFL offers no text-embedding models. The same error surfaces via the `textEmbeddingModel` alias.","triggerScenarios":"Calling `bfl.embeddingModel('any-id')`, `bfl.textEmbeddingModel('any-id')`, or `embed`/`embedMany` with a model resolved from the BFL provider — for any modelId string, since no embedding model exists.","commonSituations":"Copy-pasting provider setup from an OpenAI/other-provider example and swapping the provider to BFL while keeping embed() calls; mistakenly assuming BFL supports embeddings; a shared model-factory registry routing embedding requests to the wrong provider.","solutions":["Use a provider that implements embeddings (e.g. @ai-sdk/openai, @ai-sdk/amazon-bedrock, @ai-sdk/google) for embed/embedMany.","Remove the embed/embedMany call path that resolves models via the BFL provider.","If you intended image generation, switch to `bfl.image(modelId)` / `bfl.imageModel(modelId)`."],"exampleFix":"// before\nimport { createBlackForestLabs } from '@ai-sdk/black-forest-labs';\nconst bfl = createBlackForestLabs({ apiKey });\nconst { embedding } = await embed({ model: bfl.textEmbeddingModel('x'), value: 'hi' });\n\n// after\nimport { createOpenAI } from '@ai-sdk/openai';\nconst openai = createOpenAI({ apiKey: process.env.OPENAI_API_KEY });\nconst { embedding } = await embed({ model: openai.textEmbeddingModel('text-embedding-3-small'), value: 'hi' });","handlingStrategy":"validation","validationCode":"const EMBEDDING_CAPABLE = new Set(['openai', 'amazon-bedrock', 'google', 'mistral', 'cohere']);\nfunction assertEmbeddingProvider(providerName: string) {\n  if (!EMBEDDING_CAPABLE.has(providerName))\n    throw new Error(`${providerName} does not support embedding models; use openai/google/etc.`);\n}","typeGuard":"function supportsEmbeddings(p: unknown): boolean {\n  const candidate = p as { textEmbeddingModel?: unknown; imageModel?: unknown };\n  // BFL exposes image/video only; its embedding factories always throw\n  return typeof candidate?.textEmbeddingModel === 'function' && !('imageModel' in candidate);\n}","tryCatchPattern":"try {\n  return await embed({ model: provider.textEmbeddingModel(id), value });\n} catch (e: any) {\n  if (e?.name === 'NoSuchModelError' || e?.code === 'AI_NoSuchModelError') {\n    throw new Error(`${providerName} does not support embeddings: ${e.message}`);\n  }\n  throw e;\n}","preventionTips":["Check each provider's supported model types before wiring embed/embedMany.","Keep a provider-capability map in app config instead of swapping providers interchangeably.","Handle NoSuchModelError explicitly when building generic model registries."],"tags":["embeddings","unsupported-model-type","nosuchmodelerror","black-forest-labs"],"backgroundTag":"no-such-model-error","analyzedSha":"69428b1f8b037e4d118fb4853428d5c4e620493c","analyzedAt":"2026-08-30T12:32:21.016Z","schemaVersion":2},"datasetVersion":"2026-08-30T13:17:10.514Z"}