t8y2/dbx · error

Unknown method: %s

Error message

Unknown method: %s

What it means

The driver's dispatch routes incoming RPC method names to service handlers. Any method name not present in the switch falls through to the default case and returns this error, telling the caller the driver does not implement that method.

Source

Thrown at agents/drivers/zookeeper/main.go:130

		result, err := service.listPrefix(params)
		return result, false, err
	case "kv_get":
		result, err := service.get(params)
		return result, false, err
	case "kv_put":
		result, err := service.put(params)
		return result, false, err
	case "kv_delete":
		result, err := service.delete(params)
		return result, false, err
	case "disconnect":
		service.closeClient()
		return map[string]bool{"ok": true}, false, nil
	case "shutdown":
		service.closeClient()
		return map[string]bool{"ok": true}, true, nil
	default:
		return nil, false, fmt.Errorf("Unknown method: %s", method)
	}
}

View on GitHub (pinned to c0390bff16)

Solutions

  1. Check the method name spelling against the driver's documented/supported method list.
  2. Upgrade or align the driver and client versions so both support the same method set.
  3. Add/inspect the switch in dispatch (main.go) to see the exact accepted method names.
  4. Log the received method name at dispatch entry to catch mismatched casing or whitespace.

Example fix

// before
dispatch("initalize", req) // typo
// after
dispatch("initialize", req)
Defensive patterns

Strategy: validation

Validate before calling

var supportedMethods = map[string]bool{"open": true, "close": true, "shutdown": true /* ...per main.go dispatch */}
if !supportedMethods[method] {
	return fmt.Errorf("method %q not supported by this driver build", method)
}

Try / catch

resp, err := rpc.Call(method, args)
if err != nil && strings.HasPrefix(err.Error(), "Unknown method:") {
	// don't retry; discover supported methods or upgrade the driver
	return discoveryFallback(method, args)
}

Prevention

When it happens

Trigger: Sending a method string that does not match one of dispatch's registered cases (e.g. a typo like "opne" instead of "open", or calling a method from a newer/older protocol version than this driver implements).

Common situations: Version skew between a host application expecting methods this driver build lacks, typos in method names in driver-bridge configs, or custom tooling calling internal RPC methods directly.

Related errors


AI-assisted analysis of t8y2/dbx@c0390bff16 (2026-09-05). Data as JSON: /api/errors/c09098a6865179fd. Report an issue: GitHub.