pinpoint-apm/pinpoint · warning

found rpc fromNode linkData:{}

Error message

found rpc fromNode linkData:{}

What it means

createNode in NodeListFactory adds nodes to the application map from link data. If the FROM application is an RPC client but is not itself a node-eligible application (not a registered from-node), the link references an RPC entry point that cannot be materialized as a node, so this warning is logged and the node is skipped.

Source

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

            logger.debug("allNode:{}", nodeList.getNodeList());
        }
        return nodeList;
    }

    private static void createNode(NodeList.Builder nodeBuilder, LinkDataMap linkDataMap) {
        for (LinkData linkData : linkDataMap.getLinkDataList()) {
            final Application fromApplication = linkData.getFromApplication();
            final Application toApplication = linkData.getToApplication();

            // FROM is either a CLIENT or a node
            // 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;

View on GitHub (pinned to 744c3d3075)

Solutions

  1. Register the RPC client service type in the pinpoint service type configuration (types-yyyy.json / service-type.yml)
  2. Verify the fromApplication's serviceTypeCode is correctly mapped on both collector and web
  3. Check that the frontend's link query supplies the correct source application
  4. Ignore if the RPC node is intentionally not displayed
Defensive patterns

Strategy: validation

Validate before calling

// check the source service type before creating map nodes
if (!fromApplication.getServiceType().isRpcClient() || !isKnownServiceType(fromApplication.getServiceTypeCode())) {
    logger.warn("source {} is not a valid from-node", fromApplication);
}

Prevention

When it happens

Trigger: A link whose source application has an RPC-client service type that fails isFromNode() (the source serviceType is not an RPC client or the destination is not a valid node), typically from unregistered RPC service types in link data.

Common situations: Users calling an uninstrumented RPC endpoint; serviceType not registered in types-of configuration so the RPC client classification fails; stale topology data referencing removed applications.

Related errors


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