pinpoint-apm/pinpoint · warning
Failed to send agentInfo. result not set
Error message
Failed to send agentInfo. result not set
What it means
Same null-result failure path as error 584 but logged when agentInfo or agentInfo.getAgentInformation() is null, so no agent details can be included in the message. The send attempt returns false and will be retried later.
Source
Thrown at agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/AgentInfoSender.java:185
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);
} catch (TimeoutException ex) {
logError(agentInfo, ex);View on GitHub (pinned to 744c3d3075)
Solutions
- Verify pinpoint.config provides agentId, applicationName and that AgentInformation is built at startup
- Check the Builder wiring: ensure agentInfo passed to sendAgentInfo carries getAgentInformation() != null
- Confirm the collector responded within 3 seconds; if network latency is the root cause, the null path wouldn't apply — treat config first
- Enable DEBUG logging on AgentInfoSender to trace what is being sent
Example fix
// before AgentInfoSender.Utils.sendAgentInfo(sender, null); // after AgentInfo agentInfo = new AgentInfo(agentInformation, jvmInfo, ...); AgentInfoSender.Utils.sendAgentInfo(sender, agentInfo);
Defensive patterns
Strategy: validation
Validate before calling
if (agentInfo == null || agentInfo.getAgentInformation() == null)
throw new IllegalStateException("AgentInformation must be populated before sending"); Type guard
boolean isSendable(AgentInfo a) { return a != null && a.getAgentInformation() != null; } Prevention
- Verify agentId/applicationName/agentStartTime are set in pinpoint.config
- Never pass a partially built AgentInfo to AgentInfoSender
- Log AgentInformation at startup to confirm it is populated
When it happens
Trigger: future.get(3000ms) returned null ResultResponse while the AgentInfo object itself or its embedded AgentInformation is null — usually a construction/configuration defect rather than a network issue.
Common situations: Agent misconfiguration where agentId/applicationName/hostname were never populated into AgentInformation; programmatic use of AgentInfoSender.Builder with missing fields.
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
- Failed to send agentInfo. request unsuccessful, response={}
- Failed to send agentInfo
- Unknown AgentType:
- agentDirPath is null
- Failed to detect pinpoint profile. Please add -Dpinpoint.act
AI-assisted analysis of pinpoint-apm/pinpoint@744c3d3075 (2026-09-07).
Data as JSON: /api/errors/e6a89e21d76187a7.
Report an issue: GitHub.