{"record":{"id":"5c7f408eeb58bd74","repo":"pinpoint-apm/pinpoint","slug":"failed-to-request-header-5c7f40","errorCode":null,"errorMessage":"Failed to request. header={}","messagePattern":"Failed to request\\. header=(.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"collector/src/main/java/com/navercorp/pinpoint/collector/receiver/grpc/service/StatService.java","lineNumber":136,"sourceCode":"            this.dispatch(agentUriStat, MessageTypes.AGENT_URI_STAT, uriStatHandler, call.getUidFetcher(), context, response);\n        } else {\n            if (logger.isInfoEnabled()) {\n                logger.info(\"Found empty stat message header:{}\", ServerContext.getAgentInfo(context));\n            }\n        }\n    }\n\n    private <T> void dispatch(T data,\n                              MessageType messageType,\n                              SimpleHandler<T> handler,\n                              UidFetcher fetcher,\n                              Context context,\n                              ServerCallStream<PStatMessage, Empty> responseObserver) {\n        final ServerRequest<T> request = this.serverRequestFactory.newServerRequest(context, fetcher, messageType, data);\n        try {\n            handler.handleSimple(request);\n        } catch (Throwable e) {\n            logger.warn(\"Failed to request. header={}\", request.getHeader(), e);\n            responseObserver.onNextError(e);\n        }\n    }\n}","sourceCodeStart":118,"sourceCodeEnd":140,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/collector/src/main/java/com/navercorp/pinpoint/collector/receiver/grpc/service/StatService.java#L118-L140","documentation":"StatService dispatch catches any Throwable from the stat SimpleHandler and logs it with the request header, then propagates via onNextError(e). It indicates a PStatMessage from an agent failed processing in the collector.","triggerScenarios":"handler.handleSimple(request) throws while handling a stat message created by serverRequestFactory — e.g. binding errors, storage write failures, or handler-internal exceptions.","commonSituations":"Agent stats payload incompatible with collector version; metric storage (HBase/pinot) unavailable; deserialization failure on unusual agent data.","solutions":["Inspect the logged exception (e) for the root cause","Use the agentId in the logged header to identify and check the offending agent's version/traffic","Verify collector's stat storage backend connectivity","Align agent and collector versions to a compatible protocol"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n    statService.dispatch(handler, fetcher, context, messageType, data, responseObserver);\n} catch (Throwable e) {\n    logger.warn(\"Failed to request. header={}\", request.getHeader(), e);\n    // root cause is in e\n}","preventionTips":["Keep agent stat payload format compatible with the collector version","Alert on spikes of this warning in collector logs","Validate stat storage backend connectivity","Identify problematic agents via the logged ServerHeader"],"tags":["grpc","collector","stat","pinpoint"],"backgroundTag":"api-request-failed","analyzedSha":"744c3d3075e595656abb1ae331ad2c0e4c9eb996","analyzedAt":"2026-09-07T18:48:45.289Z","contentChangedAt":"2026-09-07T18:48:45.289Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}