{"record":{"id":"821950ea089abb41","repo":"deepseek-ai/deepseek-harness","slug":"client-api-endpoint-has-no-active-connection","errorCode":null,"errorMessage":"client api: ${endpoint} has no active Connection","messagePattern":"client api: (.+?) has no active Connection","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/api/gateway/src/client/index.ts","lineNumber":402,"sourceCode":"        throw new Error(`client api: ${endpoint} has no Client Context binder for ${JSON.stringify(projection.context)}`)\n      }\n      const identity = boundIdentity === undefined\n        ? binder?.identity(callerCtx)\n        : boundIdentity.value\n      if (identity === undefined) {\n        throw new Error(`client api: ${endpoint} requires a ${JSON.stringify(projection.context)} Context`)\n      }\n      args[projection.wire] = parse(projection.codec, identity, endpoint, projection.wire)\n    }\n    let valueIndex = 0\n    descriptor.parameters.forEach((parameter, parameterIndex) => {\n      if (parameterIndex === projection?.parameterIndex) return\n      const value = parse(parameter.codec, values[valueIndex], endpoint, parameter.wire)\n      if (value !== undefined) args[parameter.wire] = value\n      valueIndex += 1\n    })\n    const connection = this.ownerCtx.get('connection') as ConnectionHandle | undefined\n    if (connection === undefined) throw new Error(`client api: ${endpoint} has no active Connection`)\n    const callerSignal = hasCallerSignal ? values[expected] as AbortSignal | undefined : undefined\n    const signal = callerSignal === undefined\n      ? token.abort.signal\n      : AbortSignal.any([token.abort.signal, callerSignal])\n    try {\n      const result = await connection.rpc.call('/api', endpoint, { args }, signal)\n      if (!mountActive(token)) return withdrawn(endpoint)\n      if (!result.ok) return { ok: false, error: result.error }\n      return { ok: true, value: parse(descriptor.result, result.value, endpoint, 'result') }\n    } catch (error) {\n      // Carrier throws (offline, abort, a rejected result payload) are outcomes\n      // of the call, not assembly faults, so they join the same error branch.\n      return carrierFailure(endpoint, error)\n    }\n  }\n}\n\ntype InvokeRemote = (","sourceCodeStart":384,"sourceCodeEnd":420,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/api/gateway/src/client/index.ts#L384-L420","documentation":"Error \"client api: ${endpoint} has no active Connection\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/api/gateway/src/client/index.ts:402 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Establish a Connection before calling the endpoint; reconnect if the connection was closed."],"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"}