pinpoint-apm/pinpoint · warning

Failed to send agentInfo=

Error message

Failed to send agentInfo={}. result not set

What it means

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.

Solutions

  1. Check collector logs to confirm the AgentInfo was actually received and stored (the agent will retry periodically)
  2. Verify agent and collector (HBase) versions are compatible; mismatched protocols can yield empty results
  3. Inspect the configured dataSender implementation for code paths that complete the future with null
  4. The sender retries automatically; ensure the collector becomes reachable and watch for subsequent successful sends
Defensive patterns

Strategy: retry

Validate before calling

// pre-check collector reachability
try (Socket s = new Socket()) { s.connect(new InetSocketAddress(host, tcpPort), 2000); }

Try / catch

CompletableFuture<ResultResponse> f = dataSender.request(agentInfo);
ResultResponse r = f.get(3000, TimeUnit.MILLISECONDS);
if (r == null) { logger.warn("no result from collector; will retry"); return false; }

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Understand the failure class

Background: "invalid response format", "malformed payload", "missing data field": when an API returns 200 but the response shape is wrong — this error's family across 23 libraries.

Related errors


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

Appendix: source

Thrown at agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/AgentInfoSender.java:183

            boolean isSuccessful = sendAgentInfo();
            if (isSuccessful) {
                logger.info("AgentInfo sent.");
                this.cancel();
                taskHandler.onSuccess();
            }
        }

        private boolean sendAgentInfo() {
            AgentInfo agentInfo = null;
            try {
                agentInfo = agentInfoFactory.createAgentInfo();

                logger.info("Sending AgentInfo={}", agentInfo);
                CompletableFuture<ResultResponse> future = dataSender.request(agentInfo);
                ResultResponse result = future.get(3000, TimeUnit.MILLISECONDS);
                if (result == null) {
                    if (agentInfo != null && agentInfo.getAgentInformation() != null) {
                        logger.warn("Failed to send agentInfo={}. result not set", agentInfo.getAgentInformation());
                    } else {
                        logger.warn("Failed to send agentInfo. result not set");
                    }
                    return false;
                }
                if (!result.isSuccess()) {
                    if (agentInfo != null && agentInfo.getAgentInformation() != null) {
                        logger.warn("Failed to send agentInfo={}. request unsuccessful, response={}", agentInfo.getAgentInformation(), result.getMessage());
                    } else {
                        logger.warn("Failed to send agentInfo. request unsuccessful, response={}", result.getMessage());
                    }
                }
                return result.isSuccess();
            } catch (ExecutionException ex) {
                logError(agentInfo, ex.getCause());
            } catch (InterruptedException ex) {
                Thread.currentThread().interrupt();
                logError(agentInfo, ex);

View on GitHub (pinned to 744c3d3075)