deepseek-ai/deepseek-harness · error · Error
typert: invocation "${descriptor.id}" lookup parameter "${pa
Error message
typert: invocation "${descriptor.id}" lookup parameter "${parameter.name}" has no lookup key What it means
Error "typert: invocation "${descriptor.id}" lookup parameter "${parameter.name}" has no lookup key" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/typert/registry/src/service.ts:660
validateWireName('invocation method', descriptor.method)
if (descriptor.implementation !== undefined) {
validateWireName('invocation implementation method', descriptor.implementation)
}
validateCodec(descriptor.result, `${descriptor.id} result`)
const wires = new Set<string>()
for (const parameter of descriptor.parameters) {
validateWireName('parameter name', parameter.name)
validateWireName('parameter wire field', parameter.wire)
if (wires.has(parameter.wire)) {
throw new Error(`typert: invocation "${descriptor.id}" repeats wire field "${parameter.wire}"`)
}
wires.add(parameter.wire)
if (parameter.source === 'lookup') {
if (parameter.acceptsUndefined !== undefined) {
throw new Error(`typert: invocation "${descriptor.id}" lookup parameter "${parameter.name}" cannot accept undefined`)
}
if (parameter.lookup === undefined) {
throw new Error(`typert: invocation "${descriptor.id}" lookup parameter "${parameter.name}" has no lookup key`)
}
validateSegment('lookup key', parameter.lookup)
} else if (parameter.lookup !== undefined) {
throw new Error(`typert: invocation "${descriptor.id}" JSON parameter "${parameter.name}" declares a lookup key`)
}
validateCodec(parameter.codec, `${descriptor.id} parameter ${parameter.name}`)
}
const cancellation = descriptor.cancellation as { readonly parameter: string } | undefined
if (cancellation !== undefined && cancellation.parameter !== 'signal') {
throw new Error(`typert: invocation "${descriptor.id}" cancellation parameter must be "signal"`)
}
if (descriptor.scope !== undefined) {
if (descriptor.invocation.kind !== 'direct') {
throw new Error(`typert: invocation "${descriptor.id}" Context receiver cannot declare a direct scope projection`)
}
validateSegment('scope Context key', descriptor.scope.context)
validateWireName('scope wire field', descriptor.scope.wire)
const lookups = descriptor.parameters.filter(candidate => candidate.source === 'lookup')View on GitHub (pinned to b150a551b8)
Solutions
- Declare a lookup key for the lookup parameter.
When it happens
Trigger: Thrown at packages/typert/registry/src/service.ts:660 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/0ebc90ca599c69aa.
Report an issue: GitHub.