t8y2/dbx · error
${response.Error.Message}
Error message
${response.Error.Message} What it means
The agent-process JSON-RPC client surfaced the error message returned by the agent itself: when response.Error is non-null, call() wraps its Message in a plain Go error. This is a remote-side failure (agent method returned a JSON-RPC error object), not a local transport failure — transport and id-matching problems raise different errors.
Source
Thrown at agents/drivers/rabbitmq/bench/agent_compare.go:359
payload, err := json.Marshal(request)
if err != nil {
return nil, err
}
if _, err := process.stdin.Write(append(payload, '\n')); err != nil {
return nil, err
}
if !process.reader.Scan() {
return nil, fmt.Errorf("agent response unavailable: %v", process.reader.Err())
}
var response agentResponse
if err := json.Unmarshal(process.reader.Bytes(), &response); err != nil {
return nil, err
}
if response.ID != process.nextID {
return nil, fmt.Errorf("response id %d does not match request id %d", response.ID, process.nextID)
}
if response.Error != nil {
return nil, errors.New(response.Error.Message)
}
return response.Result, nil
}
func (process *agentProcess) close() error {
_, callError := process.call("shutdown", map[string]any{})
_ = process.stdin.Close()
waitError := process.command.Wait()
if callError != nil {
return callError
}
return waitError
}
func (process *agentProcess) kill() {
if process != nil && process.command != nil && process.command.Process != nil {
_ = process.command.Process.Kill()
_, _ = process.command.Process.Wait()View on GitHub (pinned to c0390bff16)
Solutions
- Read the surfaced message — it comes from the agent — and fix the offending call (method name, params) on the client side.
- Verify client and agent versions match and that the RPC method exists in the agent's handler registry.
- Log response.Error.Code alongside Message (extend call() to return both) to pinpoint the agent-side failure class.
Example fix
// before
if response.Error != nil {
return nil, errors.New(response.Error.Message)
}
// after
if response.Error != nil {
return nil, fmt.Errorf("rpc error (code %d): %s", response.Error.Code, response.Error.Message)
} Defensive patterns
Strategy: try-catch
Try / catch
result, err := process.call("shutdown", map[string]any{})
if err != nil {
if strings.Contains(err.Error(), "rpc error") {
log.Printf("agent rejected call: %v", err)
return nil // treat as agent-side failure, not transport
}
return err
} Prevention
- Check the method name and payload shape against the agent's handler registry.
- Pin client and agent to matching versions.
- Log the JSON-RPC error code, not just the message, to classify failures.
- Add an agent-side health/ping method used before real calls.
When it happens
Trigger: Any JSON-RPC call to the agent process (e.g. process.call("shutdown", ...)) where the agent replies with {"error": {"message": "..."}}, such as unknown method, invalid params, or an internal agent failure.
Common situations: Calling a method the agent does not implement; passing wrong-shaped params; the agent crashing mid-request and its framework emitting an error response; version mismatch where the bench expects a method the agent no longer exposes.
Related errors
- agent exited during {method}
- {self.candidate.name} {method}: {json.dumps(response['error'
- agentSessionId is required
- Unsupported JDBC plugin method: " + method
- DBX MCP process is not available
AI-assisted analysis of t8y2/dbx@c0390bff16 (2026-09-05).
Data as JSON: /api/errors/dfef8aa54bea9690.
Report an issue: GitHub.