pinpoint-apm/pinpoint · info · ResponseStatusException
detailed agent info not found
Error message
detailed agent info not found
What it means
ResponseStatusException(NOT_FOUND) in getDetailedAgentInfo: agentInfoService.findDetailedAgentInfoAndStatus returned null, meaning no agent matching the agentId/timestamp pair exists in the collector's stored agent information.
Source
Thrown at web/src/main/java/com/navercorp/pinpoint/web/authorization/controller/AgentInfoController.java:94
public AgentAndStatus getAgentInfo(
@ServiceParam ServiceName serviceName,
@RequestParam("agentId") @NotBlank String agentId,
@RequestParam("timestamp") Timestamp timestamp) {
AgentAndStatus result = this.agentInfoService.findAgentInfoAndStatus(agentId, timestamp.getEpochMillis());
if (result == null) {
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "agent info not found");
}
return result;
}
@GetMapping(value = "/getDetailedAgentInfo")
public DetailedAgentAndStatus getDetailedAgentInfo(
@ServiceParam ServiceName serviceName,
@RequestParam("agentId") @NotBlank String agentId,
@RequestParam("timestamp") Timestamp timestamp) {
DetailedAgentAndStatus result = this.agentInfoService.findDetailedAgentInfoAndStatus(agentId, timestamp.getEpochMillis());
if (result == null) {
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "detailed agent info not found");
}
return result;
}
@GetMapping(value = "/getAgentStatus")
public AgentStatus getAgentStatus(
@ServiceParam ServiceName serviceName,
@RequestParam("agentId") @NotBlank String agentId,
@RequestParam("timestamp") Timestamp timestamp) {
AgentStatus result = this.agentInfoService.findAgentStatus(agentId, timestamp.getEpochMillis());
if (result == null) {
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "agent status not found");
}
return result;
}
@GetMapping(value = "/getAgentEvent")
public AgentEvent getAgentEvent(View on GitHub (pinned to 744c3d3075)
Solutions
- Confirm the agentId and pick a timestamp within its active period
- Check data retention/TTL settings on the HBase agentinfo table
- Fall back to /getAgentInfo to confirm basic data exists
Defensive patterns
Strategy: fallback
Validate before calling
long epochMillis = timestamp.getEpochMillis(); if (epochMillis <= 0) throw new IllegalArgumentException("timestamp required"); Try / catch
try { return api.getDetailedAgentInfo(id, ts); } catch (ResponseStatusException e) { if (e.getStatus() == HttpStatus.NOT_FOUND) return null; throw e; } Prevention
- Verify the agentId and use epoch-millis timestamps within its active period
- Check data retention/TTL so queries stay within retained data
- Prefer listing agents first, then querying details for known ids
When it happens
Trigger: GET /getDetailedAgentInfo?agentId=X×tamp=Y with an unknown agentId or a timestamp outside the agent's recorded lifespan.
Common situations: Stale dashboards pointing at removed agents; clock/timezone mistakes making the timestamp fall outside data retention; data purged before the queried time.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- agent info not found
- agent status not found
- agent event not found
- application serviceType not found. code:${serviceTypeCode},
- application serviceType not found. code:${serviceTypeCode},
AI-assisted analysis of pinpoint-apm/pinpoint@744c3d3075 (2026-09-07).
Data as JSON: /api/errors/f3b5884102f7ed6f.
Report an issue: GitHub.