{"record":{"id":"049169163e3cad13","repo":"deepseek-ai/deepseek-harness","slug":"model-unavailable","errorCode":"model-unavailable","errorMessage":"no adapter serves provider \"${selection.provider}\"; select a model for this session","messagePattern":"no adapter serves provider \"(.+?)\"; select a model for this session","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/host/apiproxy/src/api-proxy.ts","lineNumber":1800,"sourceCode":"  /**\n   * Resolve the addressed agent for a turn-starting method and refuse when no\n   * adapter serves its current selection: a provider nothing serves cannot start a\n   * turn, and letting it try spends the whole pre-step path to fail inside\n   * the adapter with a message about registration. Refusing here names the\n   * model the session is pointed at while the draft is still in the composer.\n   * This is `session.prompt`'s enforcement boundary: a client that disables\n   * its input is an affordance, and the method stays callable regardless.\n   */\n  async function turnAgentFor<T>(\n    request: RpcRequest<unknown>, sessionId: SessionId,\n  ): Promise<{ agent: Agent } | { refused: RpcResponse<T> }> {\n    const found = await agentFor(sessionId)\n    if ('error' in found) return { refused: err(request, found.error) }\n    const agent = found.agent\n    const selection = selectionFor(agent).current\n    if (!routeServed(selection.provider)) {\n      return {\n        refused: err(request, {\n          code: 'model-unavailable',\n          message: `no adapter serves provider \"${selection.provider}\"; select a model for this session`,\n          details: { provider: selection.provider, model: selection.model },\n        }),\n      }\n    }\n    return { agent }\n  }\n\n  /** Missing-service report shared by the settings domain (skills-domain stance). */\n  function settingsAbsent(): RpcError {\n    return { code: 'internal', message: 'settings service is absent: this deployment does not mount a settings provider (e.g. @deepseek-ai/dsh-settings-file) in its composition', details: {} }\n  }\n\n  /** Open one Host-resolved target and map native failures onto the wire vocabulary. */\n  async function openTarget(\n    request: RpcRequest<unknown>, path: string, signal: AbortSignal,\n    open: (path: string, signal: AbortSignal) => Promise<void>,","sourceCodeStart":1782,"sourceCodeEnd":1818,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/host/apiproxy/src/api-proxy.ts#L1782-L1818","documentation":"Error \"no adapter serves provider \"${selection.provider}\"; select a model for this session\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/host/apiproxy/src/api-proxy.ts:1800 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Select a model for the session whose provider has a registered adapter, or compose an adapter for the provider."],"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"}