deepseek-ai/deepseek-harness · error · Error
client api: namespace ${JSON.stringify(namespace)} conflicts
Error message
client api: namespace ${JSON.stringify(namespace)} conflicts with an existing Remote namespace What it means
Error "client api: namespace ${JSON.stringify(namespace)} conflicts with an existing Remote namespace" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/api/gateway/src/client/index.ts:244
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
* without the methods the same contribution carries; an existing namespace
* takes the group in one synchronous step.
* @param name - Remote namespace.
* @param descriptors - Every contribution descriptor naming that namespace.
* @returns disposer unmounting the group and the namespace once empty.View on GitHub (pinned to b150a551b8)
Solutions
- Choose a namespace not already taken by another Remote namespace.
When it happens
Trigger: Thrown at packages/api/gateway/src/client/index.ts:244 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/41d34fec972e8923.
Report an issue: GitHub.