pinpoint-apm/pinpoint · warning

Failed to send agentInfo={}. request unsuccessful, response=

Error message

Failed to send agentInfo={}. request unsuccessful, response={}

What it means

The collector responded with a ResultResponse whose isSuccess() is false, i.e. the collector explicitly rejected the AgentInfo. Logged with the agent details and the collector's response message; sendAgentInfo returns false and retries later.

Source

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

        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);
            }
            return false;
        }

        private void logError(AgentInfo agentInfo, Throwable cause) {
            if (agentInfo != null && agentInfo.getAgentInformation() != null) {

View on GitHub (pinned to 744c3d3075)

Solutions

  1. Read the response message in the log ('response=...') for the collector's rejection reason
  2. Verify agentId/applicationName uniqueness and validity for the collector (duplicates or bad format cause rejection)
  3. Check collector/HBase health: storage write failures make the collector return unsuccessful results
  4. Align agent and collector versions; the sender retries automatically so transient storage issues may self-heal
Defensive patterns

Strategy: retry

Try / catch

if (!result.isSuccess()) { logger.warn("rejected by collector: {}", result.getMessage()); return false; } // sender retries automatically

Prevention

When it happens

Trigger: dataSender.request(agentInfo) future completes with a non-null ResultResponse where result.isSuccess() == false and agentInfo.getAgentInformation() != null.

Common situations: Collector rejecting the registration because of an invalid agentId/applicationName, collector-side storage (HBase) write failure, or version/protocol mismatch causing the collector to answer with an error result.

Related errors


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