deepseek-ai/deepseek-harness · error · Error

client api: namespace ${JSON.stringify(namespace)} conflicts

Error message

client api: namespace ${JSON.stringify(namespace)} conflicts with the Remote service

What it means

Error "client api: namespace ${JSON.stringify(namespace)} conflicts with the Remote service" thrown in deepseek-ai/deepseek-harness.

Source

Thrown at packages/api/gateway/src/client/index.ts:239

      }
      methods.add(descriptor.method)
      table.set(descriptor.namespace, methods)
      const namespace = this.namespaces.get(descriptor.namespace)?.service
      if (namespace?.has(kind, descriptor.method) === true) {
        throw new Error(`client api: ${kind} method ${endpointOf(descriptor)} is already mounted`)
      }
    }
    for (const descriptor of contribution.descriptors) {
      requireStrictDescriptor(descriptor)
      if (descriptor.invocation.kind === 'direct') add(direct, descriptor, 'direct')
      if (scopedProjection(descriptor) !== undefined) add(scoped, descriptor, 'scoped')
    }
    const namespaces = new Set([...direct.keys(), ...scoped.keys()])
    for (const namespace of namespaces) {
      const service = this.namespaces.get(namespace)?.service
      if (service === undefined) {
        if (namespace in this) {
          throw new Error(`client api: namespace ${JSON.stringify(namespace)} conflicts with the Remote service`)
        }
        const serviceKey = remoteServiceKey(namespace)
        const property = this.ownerCtx.reflect.props[serviceKey]
        if (property?.type === 'accessor' || this.ownerCtx.get(serviceKey) !== undefined) {
          throw new Error(`client api: namespace ${JSON.stringify(namespace)} conflicts with an existing Remote namespace`)
        }
      }
      for (const method of new Set([...(direct.get(namespace) ?? []), ...(scoped.get(namespace) ?? [])])) {
        if (service === undefined) RemoteNamespaceService.assertMethodAvailable(namespace, method)
        else service.assertMethodAvailable(method)
      }
    }
  }

  /**
   * Mount one namespace's descriptor group with no visibility gap: a fresh
   * namespace installs its whole group synchronously inside its fiber's
   * apply, so a plugin parked on the namespace service never observes it

View on GitHub (pinned to b150a551b8)

Solutions

  1. Choose a namespace that does not collide with the built-in Remote service.

When it happens

Trigger: Thrown at packages/api/gateway/src/client/index.ts:239 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of deepseek-ai/deepseek-harness@b150a551b8 (2026-08-24). Data as JSON: /api/errors/ed86b4ae923d0d5c. Report an issue: GitHub.