{"record":{"id":"26de91efe6992b08","repo":"musistudio/claude-code-router","slug":"local-agent-provider-model-probing-is-not-supporte","errorCode":null,"errorMessage":"Local agent provider model probing is not supported.","messagePattern":"Local agent provider model probing is not supported\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"warning","filePath":"packages/core/src/agents/local-providers/service.ts","lineNumber":68,"sourceCode":"  }\n  if (candidate.kind === \"kimi\") {\n    return importKimiProvider(candidate, request.providerNames ?? []);\n  }\n  if (candidate.kind === \"opencode\") {\n    return importOpenCodeProvider(candidate, request.providerNames ?? []);\n  }\n  return importZcodeProvider(candidate, request.providerNames ?? []);\n}\n\nexport async function probeLocalAgentProvider(request: LocalAgentProviderProbeRequest): Promise<LocalAgentProviderProbeResult> {\n  const candidate = getLocalAgentProviderCandidates().find((item) => item.id === request.id);\n  if (!candidate) {\n    throw new Error(\"Local agent provider was not found.\");\n  }\n  if (candidate.kind === \"codex\") {\n    return probeCodexProvider(candidate);\n  }\n  throw new Error(\"Local agent provider model probing is not supported.\");\n}\n","sourceCodeStart":50,"sourceCodeEnd":70,"githubUrl":"https://github.com/musistudio/claude-code-router/blob/99f24806c6a2c660b16e53e95211c517448a6c90/packages/core/src/agents/local-providers/service.ts#L50-L70","documentation":"Model probing is only implemented for codex candidates; any other kind that reaches the end of probeLocalAgentProvider throws this.","triggerScenarios":"Calling probeLocalAgentProvider on a candidate whose kind is not 'codex' (claude-code, kimi, opencode, zcode, etc.).","commonSituations":"UI exposes the probe button for all providers though only codex supports it, or new provider kinds were added without probe support.","solutions":["Only call probe for candidates with kind === 'codex'.","For other providers, rely on their static model list instead of probing.","Hide/disable probe affordances for unsupported kinds in the UI."],"exampleFix":"// before\nawait probeLocalAgentProvider({ id: candidate.id });\n// after\nif (candidate.kind === \"codex\") {\n  await probeLocalAgentProvider({ id: candidate.id });\n}","handlingStrategy":"type-guard","validationCode":"if (candidate.kind !== 'codex') skipProbe(candidate);","typeGuard":"function isProbeable(c: LocalAgentProviderCandidate): boolean { return c.kind === 'codex'; }","tryCatchPattern":null,"preventionTips":["Gate probe UI by candidate.kind.","Add probe support before exposing new kinds."],"tags":["local-provider","probe","unsupported"],"backgroundTag":"unsupported-operation","analyzedSha":"99f24806c6a2c660b16e53e95211c517448a6c90","analyzedAt":"2026-08-27T04:11:01.184Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}