{"record":{"id":"9ab40b8b4051c6d7","repo":"pinpoint-apm/pinpoint","slug":"failed-to-send-agentinfo-result-not-set","errorCode":null,"errorMessage":"Failed to send agentInfo={}. result not set","messagePattern":"Failed to send agentInfo=(.+?)\\. result not set","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/AgentInfoSender.java","lineNumber":183,"sourceCode":"            boolean isSuccessful = sendAgentInfo();\n            if (isSuccessful) {\n                logger.info(\"AgentInfo sent.\");\n                this.cancel();\n                taskHandler.onSuccess();\n            }\n        }\n\n        private boolean sendAgentInfo() {\n            AgentInfo agentInfo = null;\n            try {\n                agentInfo = agentInfoFactory.createAgentInfo();\n\n                logger.info(\"Sending AgentInfo={}\", agentInfo);\n                CompletableFuture<ResultResponse> future = dataSender.request(agentInfo);\n                ResultResponse result = future.get(3000, TimeUnit.MILLISECONDS);\n                if (result == null) {\n                    if (agentInfo != null && agentInfo.getAgentInformation() != null) {\n                        logger.warn(\"Failed to send agentInfo={}. result not set\", agentInfo.getAgentInformation());\n                    } else {\n                        logger.warn(\"Failed to send agentInfo. result not set\");\n                    }\n                    return false;\n                }\n                if (!result.isSuccess()) {\n                    if (agentInfo != null && agentInfo.getAgentInformation() != null) {\n                        logger.warn(\"Failed to send agentInfo={}. request unsuccessful, response={}\", agentInfo.getAgentInformation(), result.getMessage());\n                    } else {\n                        logger.warn(\"Failed to send agentInfo. request unsuccessful, response={}\", result.getMessage());\n                    }\n                }\n                return result.isSuccess();\n            } catch (ExecutionException ex) {\n                logError(agentInfo, ex.getCause());\n            } catch (InterruptedException ex) {\n                Thread.currentThread().interrupt();\n                logError(agentInfo, ex);","sourceCodeStart":165,"sourceCodeEnd":201,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/AgentInfoSender.java#L165-L201","documentation":"AgentInfoSender.sendAgentInfo sends AgentInfo via the async data sender and waits up to 3 seconds for a ResultResponse. If the future returns null, the send is treated as failed (returns false) and this warning is logged with the agent's AgentInformation. It indicates the transport layer completed without producing a result object.","triggerScenarios":"dataSender.request(agentInfo) future completes with a null ResultResponse within the 3000ms timeout — i.e. the transport succeeded at the socket level but produced no result payload.","commonSituations":"Collector responses routed through a protocol path that resolves the future without setting a result; custom/misconfigured data sender implementations; serialization mismatch between agent and collector versions.","solutions":["Check collector logs to confirm the AgentInfo was actually received and stored (the agent will retry periodically)","Verify agent and collector (HBase) versions are compatible; mismatched protocols can yield empty results","Inspect the configured dataSender implementation for code paths that complete the future with null","The sender retries automatically; ensure the collector becomes reachable and watch for subsequent successful sends"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"// pre-check collector reachability\ntry (Socket s = new Socket()) { s.connect(new InetSocketAddress(host, tcpPort), 2000); }","typeGuard":null,"tryCatchPattern":"CompletableFuture<ResultResponse> f = dataSender.request(agentInfo);\nResultResponse r = f.get(3000, TimeUnit.MILLISECONDS);\nif (r == null) { logger.warn(\"no result from collector; will retry\"); return false; }","preventionTips":["Ensure agent and collector protocol versions match","Monitor collector health and storage (HBase) status","Rely on AgentInfoSender's built-in retry; alert on repeated null results"],"tags":["network","agent-registration","async","rpc"],"backgroundTag":"unexpected-api-response-shape","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"}