{"record":{"id":"0d46eb54105ed681","repo":"deepseek-ai/deepseek-harness","slug":"signature-invalid","errorCode":"signature-invalid","errorMessage":"SRC cancellation parameter signal must be the final parameter","messagePattern":"SRC cancellation parameter signal must be the final parameter","errorType":"exception","errorClass":"TypertGatewayError","httpStatus":null,"severity":"error","filePath":"packages/api/gateway/src/index.ts","lineNumber":274,"sourceCode":"      throw new TypertGatewayError(\n        'ambiguous-endpoint',\n        endpoint,\n        `multiple active Services export this endpoint: ${candidates.map(candidate => candidate.service).sort().join(', ')}`,\n      )\n    }\n    return candidates[0] as InvocationDescriptor\n  }\n\n  private srcDescriptor(\n    binding: TypertGatewayBinding,\n    marker: ReturnType<typeof remoteMethods>[number],\n    method: string,\n    endpoint: string,\n  ): InvocationDescriptor {\n    const names = methodParameterNames(binding.service, marker.method, endpoint)\n    const signalIndex = names.indexOf('signal')\n    if (signalIndex >= 0 && signalIndex !== names.length - 1) {\n      throw new TypertGatewayError(\n        'signature-invalid',\n        endpoint,\n        'SRC cancellation parameter signal must be the final parameter',\n        { field: 'signal' },\n      )\n    }\n    const cancellation = signalIndex >= 0\n      ? { parameter: 'signal' as const }\n      : undefined\n    const businessNames = cancellation === undefined ? names : names.slice(0, -1)\n    const parameters: InvocationParameterDescriptor[] = []\n    const wires = new Set<string>()\n    for (const name of businessNames) {\n      const matches = this.ctx.typert.lookups.definitions()\n        .filter(definition => definition.parameter === name)\n      if (matches.length > 1) {\n        throw new TypertGatewayError(\n          'signature-invalid',","sourceCodeStart":256,"sourceCodeEnd":292,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/api/gateway/src/index.ts#L256-L292","documentation":"Error \"SRC cancellation parameter signal must be the final parameter\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/api/gateway/src/index.ts:274 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Move the signal parameter to the final position of the SRC function signature."],"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"}