vercel/ai · error · NoSuchModelError

No such languageModel: ${modelId}

Error message

No such languageModel: ${modelId}

What it means

The @ai-sdk/quiverai provider does not implement language models: its provider object's languageModel factory intentionally throws NoSuchModelError for every modelId. Only image/embedding models are supported. Requesting a language model (e.g. via provider('some-model') or provider.languageModel(...)) always fails.

Source

Thrown at packages/quiverai/src/quiverai-provider.ts:105

      provider: 'quiverai.image',
      baseURL,
      headers: getHeaders,
      fetch: options.fetch,
    });

  const embeddingModel = (modelId: string) => {
    throw new NoSuchModelError({
      modelId,
      modelType: 'embeddingModel',
    });
  };

  return {
    specificationVersion: 'v4',
    image: createImageModel,
    imageModel: createImageModel,
    languageModel: (modelId: string) => {
      throw new NoSuchModelError({
        modelId,
        modelType: 'languageModel',
      });
    },
    embeddingModel,
    textEmbeddingModel: embeddingModel,
  };
}

export const quiverai = createQuiverAI();

View on GitHub (pinned to 69428b1f8b)

Solutions

  1. Use the supported surfaces: quiverai.image(...) / quiverai.imageModel or quiverai.textEmbeddingModel(...) with generateImage/embed
  2. Switch to a provider package that implements language models (openai, anthropic, google, etc.) for generateText/streamText
  3. Check the package README/docs to confirm which model types quiverai supports
  4. Verify you imported the intended provider (not quiverai) in your text-generation code

Example fix

// before
const model = quiverai('quiver-large');
await generateText({ model, prompt: 'hi' });
// after (supported usage)
await generateImage({ model: quiverai.image('quiver-image'), prompt: 'a cat' });
Defensive patterns

Strategy: type-guard

Validate before calling

import type { LanguageModelV4 } from '@ai-sdk/provider';
function supportsLanguageModel(provider: unknown): boolean {
  try {
    provider?.languageModel?.('probe');
    return true;
  } catch {
    return false;
  }
}

Type guard

function isLanguageModelCapable(provider: { languageModel?: (id: string) => unknown }): boolean {
  try {
    provider.languageModel?.('__probe__');
    return true;
  } catch {
    return false;
  }
}

Try / catch

try {
  const model = quiverai('some-model');
} catch (error) {
  if (NoSuchModelError.isInstance?.(error)) {
    console.error('quiverai does not support language models; use quiverai.image()/textEmbeddingModel() or another provider');
  }
  throw error;
}

Prevention

When it happens

Trigger: Any call like quiverai('my-model'), quiverai.languageModel('my-model'), or passing the provider where a LanguageModelV4 is expected (generateText/streamText with this provider).

Common situations: Assuming the package supports text generation because most @ai-sdk providers do; copy-pasting provider setup code from another provider; passing the quiverai provider to chat/text APIs instead of image/embedding APIs.

Related errors


AI-assisted analysis of vercel/ai@69428b1f8b (2026-08-30). Data as JSON: /api/errors/f92384d87349802c. Report an issue: GitHub.