deepseek-ai/deepseek-harness · error · Error

llm-pi-ai: provider "${provider}" ${detail}

Error message

llm-pi-ai: provider "${provider}" ${detail}

What it means

Error "llm-pi-ai: provider "${provider}" ${detail}" thrown in deepseek-ai/deepseek-harness.

Source

Thrown at packages/llm/llm-pi-ai/src/catalog.ts:605

  /** Endpoint override; absent defers to the catalog model, then the catalog provider. */
  baseURL?: string
  /** Configured catalog; absent means the whole installed catalog for this route. */
  models?: readonly PiAiModelProfile[]
  /** Installed-catalog customizations by model id; only meaningful while `models` is absent. */
  modelOverrides?: Readonly<Record<string, PiAiModelOverride>>
  /** Route-level wire-compatibility switches, landing on each model whose protocol declares them; entries override per field. */
  compat?: PiAiCompatProfile
  /** Context capacity for a model neither the entry nor the catalog sizes. */
  defaultContextWindow: number
  /** Output capability for a model neither the entry nor the catalog sizes. */
  defaultMaxTokens: number
  /** Modalities for a model neither the entry nor the catalog declares. */
  defaultInput: Model<Api>['input']
}

/** Report a route the deployment cannot serve, naming the settings key at fault. */
function invalid(provider: string, detail: string): never {
  throw new Error(`llm-pi-ai: provider "${provider}" ${detail}`)
}

/**
 * The one wire protocol a catalog route's shipped models agree on. This is what
 * lets a deployment add a model the installed catalog has not caught up with —
 * a provider's newest release — without restating the protocol its siblings
 * already use. A route whose shipped models disagree (an OpenAI-style catalog
 * spanning Responses and Chat Completions) has no such answer, so a model it
 * does not describe must name its protocol at the route.
 */
function sharedCatalogApi(defaults: ReadonlyMap<string, Model<Api>>): string | undefined {
  const apis = new Set<string>()
  for (const model of defaults.values()) apis.add(model.api)
  return apis.size === 1 ? [...apis][0] : undefined
}

/** The reasoning fields one materialized model carries. */
interface ModelReasoning {

View on GitHub (pinned to b150a551b8)

Solutions

  1. Fix the provider configuration per the detail included in the message.

When it happens

Trigger: Thrown at packages/llm/llm-pi-ai/src/catalog.ts:605 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of deepseek-ai/deepseek-harness@b150a551b8 (2026-08-24). Data as JSON: /api/errors/9850ead56fc9cae5. Report an issue: GitHub.