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
- Check the method name spelling against the driver's documented/supported method list.
- Upgrade or align the driver and client versions so both support the same method set.
- Add/inspect the switch in dispatch (main.go) to see the exact accepted method names.
- 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
- Keep client and driver versions in lockstep so method sets match.
- Generate method names from shared constants, not string literals.
- Discover/whitelist supported methods at startup instead of calling blindly.
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
- ZooKeeper sent an unexpected token after GSSAPI completion
- agentSessionId is required
- ZooKeeper connection is nil
- ZooKeeper sent an unexpected token after GSSAPI completion
- agentSessionId is required
AI-assisted analysis of t8y2/dbx@c0390bff16 (2026-09-05).
Data as JSON: /api/errors/c09098a6865179fd.
Report an issue: GitHub.