pinpoint-apm/pinpoint · warning
Failed to request. {} header={}
Error message
Failed to request. {} header={} What it means
Generic warning logged by Pinpoint collector's gRPC JobRunner when an exception escapes handling of a server request. The actual failure cause is the attached Throwable 'th'; the log message itself only carries the message type and header. It wraps whatever went wrong while processing a job-style gRPC request and then propagates the error via response.onError(th).
Source
Thrown at collector/src/main/java/com/navercorp/pinpoint/collector/receiver/grpc/service/JobRunner.java:46
}
public <Req, Res> void execute(MessageType messageType,
Req req, StreamObserver<Res> responseObserver,
BiConsumer<ServerRequest<Req>, ServerResponse<Res>> job) {
Context current = Context.current();
ServerRequest<Req> request = requestFactory.newServerRequest(current, messageType, req);
ServerResponse<Res> response = responseFactory.newServerResponse(request, responseObserver);
try {
job.accept(request, response);
} catch (Throwable e) {
handleException(request, response, e);
}
}
protected <Req, Res> void handleException(ServerRequest<Req> request, ServerResponse<Res> response, Throwable th) {
MessageType messageType = request.getMessageType();
ServerHeader header = request.getHeader();
logger.warn("Failed to request. {} header={}", messageType, header, th);
response.onError(th);
}
}
View on GitHub (pinned to 744c3d3075)
Solutions
- Inspect the full stack trace logged as the third argument (th) to find the root cause
- Check collector logs for the messageType shown in the log to identify which handler failed
- Verify collector-to-storage (e.g. HBase) connectivity if the handler persists data
- Confirm agent and collector protocol versions are compatible
Defensive patterns
Strategy: try-catch
Try / catch
try {
jobRunner.execute(request, response);
} catch (Throwable th) {
logger.warn("Failed to request. {} header={}", request.getMessageType(), request.getHeader(), th);
// inspect th for root cause; do not silently swallow
} Prevention
- Always read the third log argument (Throwable) — the message text itself is uninformative
- Monitor collector logs for this warning and alert on spikes per messageType
- Keep agent and collector protocol versions aligned
- Test handler code against malformed gRPC payloads
When it happens
Trigger: Any Throwable thrown during execute() of a JobRunner-managed gRPC server request, e.g. handler bugs, deserialization failures, or downstream component errors inside the handler.
Common situations: Agent sends a malformed or unexpected gRPC message; collector-side handler throws due to internal errors (DB unavailable, serialization mismatch) after a Pinpoint version upgrade; network/client aborts mid-request.
Understand the failure class
Background: "API request failed": what wrapped HTTP errors from external APIs mean and how to find the real cause — this error's family across 29 libraries.
Related errors
- Failed to request. header={}
- Failed to request. header={}
- list size not same
- INTERNAL_SERVER_ERROR
- INTERNAL_SERVER_ERROR
AI-assisted analysis of pinpoint-apm/pinpoint@744c3d3075 (2026-09-07).
Data as JSON: /api/errors/7af18213c0062636.
Report an issue: GitHub.