{"record":{"id":"390484c0324c37b2","repo":"deepseek-ai/deepseek-harness","slug":"llm-pi-ai-provider-spec-provider-names-api","errorCode":null,"errorMessage":"llm-pi-ai: provider \"${spec.provider}\" names api \"${spec.api}\", which this build cannot serve; supported protocols are ${supportedProtocols().join(', ')}","messagePattern":"llm-pi-ai: provider \"(.+?)\" names api \"(.+?)\", which this build cannot serve; supported protocols are (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/llm/llm-pi-ai/src/provider.ts","lineNumber":179,"sourceCode":"/**\n * Build the pi-ai provider for one resolved route.\n * @param spec - the resolved route facts.\n * @returns the provider to register in the adapter's `Models` collection.\n * @throws Error when the route names a wire protocol this build cannot serve.\n */\nexport function buildProvider(spec: ProviderSpec): Provider {\n  const catalog = catalogProvider(spec.provider)\n  // A catalog route keeping its catalog protocol reuses the catalog provider;\n  // an explicit protocol means the deployment is repointing the route at a\n  // different wire format, which only the protocol table can serve.\n  if (catalog !== undefined && spec.api === undefined) return reuseCatalogProvider(catalog, spec)\n\n  // Every model on this path carries the route's protocol: model resolution\n  // requires one for a route the catalog cannot default, and an explicit one\n  // replaces each catalog model's own. So the route has a single API.\n  const factory = spec.api === undefined ? undefined : PROTOCOLS[spec.api]\n  if (factory === undefined) {\n    throw new Error(\n      `llm-pi-ai: provider \"${spec.provider}\" names api \"${spec.api}\", which this build cannot serve;`\n      + ` supported protocols are ${supportedProtocols().join(', ')}`,\n    )\n  }\n  return createProvider({\n    id: spec.provider,\n    name: spec.displayName,\n    ...spec.baseURL === undefined ? {} : { baseUrl: spec.baseURL },\n    auth: routeAuth(spec, catalog),\n    models: spec.models,\n    api: factory(),\n  })\n}\n","sourceCodeStart":161,"sourceCodeEnd":193,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/llm/llm-pi-ai/src/provider.ts#L161-L193","documentation":"Error \"llm-pi-ai: provider \"${spec.provider}\" names api \"${spec.api}\", which this build cannot serve; supported protocols are ${supportedProtocols().join(', ')}\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/llm/llm-pi-ai/src/provider.ts:179 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use one of the listed supported protocols for the provider's api field."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b150a551b8d465e31e418e1b2eaf5e79bbb7d28e","analyzedAt":"2026-08-24T18:12:29.105Z","schemaVersion":2},"datasetVersion":"2026-08-24T22:17:12.610Z"}