{"record":{"id":"08b243d9cdc2df3d","repo":"pinpoint-apm/pinpoint","slug":"failed-to-send-agentinfo-08b243","errorCode":null,"errorMessage":"Failed to send agentInfo","messagePattern":"Failed to send agentInfo","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/AgentInfoSender.java","lineNumber":212,"sourceCode":"                    }\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);\n            } catch (TimeoutException ex) {\n                logError(agentInfo, ex);\n            }\n            return false;\n        }\n\n        private void logError(AgentInfo agentInfo, Throwable cause) {\n            if (agentInfo != null && agentInfo.getAgentInformation() != null) {\n                logger.warn(\"Failed to send agentInfo={}\", agentInfo.getAgentInformation(), cause);\n            } else {\n                logger.warn(\"Failed to send agentInfo\", cause);\n            }\n        }\n    }\n\n    public static class Builder {\n        private final AsyncDataSender<MetaDataType, ResultResponse> dataSender;\n        private final AgentInfoFactory agentInfoFactory;\n        private long refreshIntervalMs = DEFAULT_AGENT_INFO_REFRESH_INTERVAL_MS;\n        private long sendIntervalMs = DEFAULT_AGENT_INFO_SEND_INTERVAL_MS;\n        private int maxTryPerAttempt = DEFAULT_MAX_TRY_COUNT_PER_ATTEMPT;\n\n        public Builder(AsyncDataSender<MetaDataType, ResultResponse> dataSender, AgentInfoFactory agentInfoFactory) {\n            this.dataSender = Objects.requireNonNull(dataSender, \"dataSender\");\n            this.agentInfoFactory = Objects.requireNonNull(agentInfoFactory, \"agentInfoFactory\");\n        }\n\n        public Builder refreshInterval(long refreshIntervalMs) {\n            this.refreshIntervalMs = refreshIntervalMs;","sourceCodeStart":194,"sourceCodeEnd":230,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/AgentInfoSender.java#L194-L230","documentation":"Fallback branch of logError: the same exception-driven send failure is logged without agent details because agentInfo or its AgentInformation is null. Cause is chained in the log; the send fails and retries.","triggerScenarios":"Send exception (timeout/execution failure) while agentInfo == null or agentInfo.getAgentInformation() == null — an infra failure combined with missing agent metadata.","commonSituations":"Early startup or programmatic Builder misuse producing AgentInfo without AgentInformation, while the collector is simultaneously unreachable.","solutions":["Populate AgentInformation correctly (agentId, applicationName, agentStartTime, hostname) in pinpoint.config / Builder","Fix the underlying network/collector issue revealed by the chained cause","Confirm collector reachability with a connection test from the agent host","Monitor retry success after fixing; agent registration completes once a send succeeds"],"exampleFix":"// before: agentInfo without information\nnew AgentInfo(null, jvmInfo, serverMetaData, serviceInfoCollection)\n// after\nnew AgentInfo(new AgentInformation(agentId, applicationName, ...), jvmInfo, serverMetaData, serviceInfoCollection)","handlingStrategy":"try-catch","validationCode":"if (agentInfo == null || agentInfo.getAgentInformation() == null)\n    throw new IllegalStateException(\"AgentInformation missing before send\");","typeGuard":null,"tryCatchPattern":"try { ... }\ncatch (ExecutionException ex) { logError(agentInfo, ex.getCause()); }\ncatch (InterruptedException ex) { Thread.currentThread().interrupt(); }","preventionTips":["Ensure AgentInformation is built before any send attempt","Fix underlying transport issues revealed by the chained cause","Keep collector endpoints reachable and monitored"],"tags":["network","timeout","null-value","agent-registration"],"backgroundTag":"request-timeout","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"}