deepseek-ai/deepseek-harness · error · TypertAnalysisError
typert(${this.face}): ${invocation.location.file}:${String(i
Error message
typert(${this.face}): ${invocation.location.file}:${String(invocation.location.line)}:${String(invocation.location.column)}: Remote endpoint ${endpoint} conflicts with ${existingEndpoint.id} What it means
Error "typert(${this.face}): ${invocation.location.file}:${String(invocation.location.line)}:${String(invocation.location.column)}: Remote endpoint ${endpoint} conflicts with ${existingEndpoint.id}" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/typert/generator/src/analyzer.ts:1829
if (declaration === undefined) return false
const registration = this.registrationForFile(declaration.getSourceFile().fileName)
if (registration?.name === '@deepseek-ai/dsh-typert-protocol') return true
for (let current: ts.Node | undefined = declaration; current !== undefined; current = optionalParent(current)) {
if (ts.isModuleDeclaration(current)
&& ts.isStringLiteral(current.name)
&& current.name.text === '@deepseek-ai/dsh-typert-protocol') return true
}
return false
}
private validateInvocationIdentity(packages: readonly PackageModel[]): void {
const endpoints = new Map<string, InvocationModel>()
const ids = new Map<string, InvocationModel>()
for (const invocation of packages.flatMap(packageModel => packageModel.invocations)) {
const endpoint = `${invocation.namespace}/${invocation.method}`
const existingEndpoint = endpoints.get(endpoint)
if (existingEndpoint !== undefined) {
throw new TypertAnalysisError(
`typert(${this.face}): ${invocation.location.file}:${String(invocation.location.line)}:${String(invocation.location.column)}: Remote endpoint ${endpoint} conflicts with ${existingEndpoint.id}`,
)
}
const existingId = ids.get(invocation.id)
if (existingId !== undefined) {
throw new TypertAnalysisError(
`typert(${this.face}): ${invocation.location.file}:${String(invocation.location.line)}:${String(invocation.location.column)}: Remote invocation id ${invocation.id} conflicts with ${existingId.id}`,
)
}
endpoints.set(endpoint, invocation)
ids.set(invocation.id, invocation)
}
}
private collectEvents(events: ts.InterfaceDeclaration): EventModel[] {
const result: EventModel[] = []
for (const member of events.members) {
const documentation = documentationOf(member)View on GitHub (pinned to b150a551b8)
Solutions
- Rename one of the conflicting Remote endpoints so endpoints are unique.
When it happens
Trigger: Thrown at packages/typert/generator/src/analyzer.ts:1829 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/b8ba947ddb4d7135.
Report an issue: GitHub.