pinpoint-apm/pinpoint · warning

found rpc toNode:{}

Error message

found rpc toNode:{}

What it means

The symmetric counterpart of the fromNode warning: when the TO application of a link is not a node-eligible target (isToNode fails), createNode logs this warning and skips creating the destination node. The link data references a destination that cannot be represented as an application-map node.

Source

Thrown at web/src/main/java/com/navercorp/pinpoint/web/applicationmap/nodes/NodeListFactory.java:74

            // cannot be RPC. Already converted to unknown.
            if (isFromNode(fromApplication, toApplication)) {
                final boolean success = addNode(nodeBuilder, fromApplication);
                if (success) {
                    logger.debug("createSourceNode:{}", fromApplication);
                }
            } else {
                logger.warn("found rpc fromNode linkData:{}", linkData);
            }

            // FROM -> TO : TO is either a CLIENT or a node
            // create node when it's alias even if RPC
            if (isToNode(fromApplication, toApplication)) {
                final boolean success = addNode(nodeBuilder, toApplication);
                if (success) {
                    logger.debug("createTargetNode:{}", toApplication);
                }
            } else {
                logger.warn("found rpc toNode:{}", linkData);
            }
        }
    }

    private static boolean isFromNode(final Application fromApplication, final Application toApplication) {
        if (fromApplication.getServiceType().isRpcClient()) {
            return false;
        }
        return true;
    }

    private static boolean isToNode(final Application fromApplication, final Application toApplication) {
        if (!toApplication.getServiceType().isRpcClient()) {
            return true;
        }
        if (toApplication.getServiceType().isAlias()) {
            return true;
        }

View on GitHub (pinned to 744c3d3075)

Solutions

  1. Register the destination's service type in the web/collector service-type configuration
  2. Use an application alias so the RPC destination maps to a real node
  3. Confirm the link's toApplication name/serviceType match the actual destination agent's config
  4. Ignore if the destination is intentionally external
Defensive patterns

Strategy: validation

Validate before calling

// ensure the destination resolves to a real node
if (!toApplication.getServiceType().isWas() && !isToNode(fromApplication, toApplication)) {
    logger.warn("destination {} cannot be a node; consider an alias", toApplication);
}

Prevention

When it happens

Trigger: Link data whose toApplication has an RPC/unregistered service type that is not a valid node target — e.g. destination serviceType is RpcClient/unknown, or alias handling fails.

Common situations: Calls to unregistered backend technologies (custom service types not configured); destination applications deleted or renamed; RPC addresses used as destinations without alias registration.

Related errors


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