{"record":{"id":"41d34fec972e8923","repo":"deepseek-ai/deepseek-harness","slug":"client-api-namespace-json-stringify-namespace-41d34f","errorCode":null,"errorMessage":"client api: namespace ${JSON.stringify(namespace)} conflicts with an existing Remote namespace","messagePattern":"client api: namespace (.+?) conflicts with an existing Remote namespace","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/api/gateway/src/client/index.ts","lineNumber":244,"sourceCode":"        throw new Error(`client api: ${kind} method ${endpointOf(descriptor)} is already mounted`)\n      }\n    }\n    for (const descriptor of contribution.descriptors) {\n      requireStrictDescriptor(descriptor)\n      if (descriptor.invocation.kind === 'direct') add(direct, descriptor, 'direct')\n      if (scopedProjection(descriptor) !== undefined) add(scoped, descriptor, 'scoped')\n    }\n    const namespaces = new Set([...direct.keys(), ...scoped.keys()])\n    for (const namespace of namespaces) {\n      const service = this.namespaces.get(namespace)?.service\n      if (service === undefined) {\n        if (namespace in this) {\n          throw new Error(`client api: namespace ${JSON.stringify(namespace)} conflicts with the Remote service`)\n        }\n        const serviceKey = remoteServiceKey(namespace)\n        const property = this.ownerCtx.reflect.props[serviceKey]\n        if (property?.type === 'accessor' || this.ownerCtx.get(serviceKey) !== undefined) {\n          throw new Error(`client api: namespace ${JSON.stringify(namespace)} conflicts with an existing Remote namespace`)\n        }\n      }\n      for (const method of new Set([...(direct.get(namespace) ?? []), ...(scoped.get(namespace) ?? [])])) {\n        if (service === undefined) RemoteNamespaceService.assertMethodAvailable(namespace, method)\n        else service.assertMethodAvailable(method)\n      }\n    }\n  }\n\n  /**\n   * Mount one namespace's descriptor group with no visibility gap: a fresh\n   * namespace installs its whole group synchronously inside its fiber's\n   * apply, so a plugin parked on the namespace service never observes it\n   * without the methods the same contribution carries; an existing namespace\n   * takes the group in one synchronous step.\n   * @param name - Remote namespace.\n   * @param descriptors - Every contribution descriptor naming that namespace.\n   * @returns disposer unmounting the group and the namespace once empty.","sourceCodeStart":226,"sourceCodeEnd":262,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/api/gateway/src/client/index.ts#L226-L262","documentation":"Error \"client api: namespace ${JSON.stringify(namespace)} conflicts with an existing Remote namespace\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/api/gateway/src/client/index.ts:244 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Choose a namespace not already taken by another Remote namespace."],"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"}