deepseek-ai/deepseek-harness · error · TypertGatewayError

method-unavailable

method-unavailable

Error message

active Service ${JSON.stringify(descriptor.service)} has no callable method ${JSON.stringify(implementation)}

What it means

Error "active Service ${JSON.stringify(descriptor.service)} has no callable method ${JSON.stringify(implementation)}" thrown in deepseek-ai/deepseek-harness.

Source

Thrown at packages/api/gateway/src/index.ts:165

    const descriptor = this.resolveDescriptor(request.namespace, request.method, endpoint)
    assertExactArguments(request.args, descriptor, endpoint)
    const receiverContext = await this.resolveReceiverContext(descriptor, request.args, endpoint)
    const receiver = receiverContext.get(descriptor.service) as unknown
    if (!isObject(receiver)) {
      throw new TypertGatewayError(
        'service-unavailable',
        endpoint,
        `active Service ${JSON.stringify(descriptor.service)} is unavailable`,
      )
    }
    validateBinding(receiver, descriptor.service, descriptor.namespace, endpoint)
    const args = await Promise.all(descriptor.parameters.map(parameter =>
      this.resolveParameter(parameter, request.args, endpoint)))
    if (descriptor.cancellation !== undefined) args.push(request.signal ?? NEVER_ABORTED_SIGNAL)
    const implementation = descriptor.implementation ?? descriptor.method
    const method = Reflect.get(receiver, implementation) as unknown
    if (typeof method !== 'function') {
      throw new TypertGatewayError(
        'method-unavailable',
        endpoint,
        `active Service ${JSON.stringify(descriptor.service)} has no callable method ${JSON.stringify(implementation)}`,
      )
    }

    let result: unknown
    try {
      result = await Reflect.apply(method, receiver, args) as unknown
    } catch (error) {
      if (request.signal?.aborted === true) throw new RemoteInvocationCancelled(endpoint, error)
      throw error
    }
    // A weak descriptor declares no return type, so nothing returned is a void
    // result and rides the wire as an absent value field. A strict descriptor
    // keeps its schema: there, undefined has to be a declared result.
    if (result === undefined && descriptor.result.mode !== 'strict') return result
    return decode(descriptor.result, result, 'result-invalid', endpoint, 'result')

View on GitHub (pinned to b150a551b8)

Solutions

  1. Export a callable implementation for the method on the active Service.

When it happens

Trigger: Thrown at packages/api/gateway/src/index.ts:165 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/f922391aea864149. Report an issue: GitHub.