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

  1. Inspect the full stack trace logged as the third argument (th) to find the root cause
  2. Check collector logs for the messageType shown in the log to identify which handler failed
  3. Verify collector-to-storage (e.g. HBase) connectivity if the handler persists data
  4. 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

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


AI-assisted analysis of pinpoint-apm/pinpoint@744c3d3075 (2026-09-07). Data as JSON: /api/errors/7af18213c0062636. Report an issue: GitHub.