{"record":{"id":"a4916c122e182d0c","repo":"ruvnet/ruflo","slug":"federation-send-aborted-peer-targetnodeid-not","errorCode":null,"errorMessage":"Federation send aborted: peer ${targetNodeId} not in discovery registry","messagePattern":"Federation send aborted: peer (.+?) not in discovery registry","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/plugin-agent-federation/src/plugin.ts","lineNumber":370,"sourceCode":"          },\n        };\n      },\n      sendToNode: async (targetNodeId, envelope) => {\n        // ADR-104: real wire send via the loaded transport. If the\n        // transport failed to load OR the peer's address can't be\n        // resolved, log + return (the upstream RoutingService.send\n        // already wraps this in try/catch and returns a RoutingResult\n        // with the error to the caller).\n        if (!transport) {\n          context.logger.debug(\n            `Federation send (in-process noop): ${envelope.envelopeId} → ${targetNodeId}`,\n          );\n          return;\n        }\n        const address = resolveAddress(targetNodeId);\n        const peer = discovery.getPeer(targetNodeId);\n        if (!address || !peer) {\n          context.logger.warn(\n            `Federation send aborted: peer ${targetNodeId} not in discovery registry`,\n          );\n          throw new Error(`PEER_UNKNOWN: ${targetNodeId}`);\n        }\n        const signatureVersion = selectEnvelopeSignatureVersion(\n          signatureMode,\n          peer.capabilities.supportedProtocols,\n          envelope.messageType,\n        );\n        // Build the AgentMessage WITHOUT signature first, canonicalize\n        // the bytes, sign them, then attach the signature to metadata.\n        // The receiver runs the same canonicalization and verifies\n        // against this node's published public key.\n        const baseMessage: AgentMessage = {\n          id: envelope.envelopeId,\n          type: envelope.messageType,\n          payload: envelope as unknown,\n          metadata: {","sourceCodeStart":352,"sourceCodeEnd":388,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/plugin-agent-federation/src/plugin.ts#L352-L388","documentation":"Error \"Federation send aborted: peer ${targetNodeId} not in discovery registry\" thrown in ruvnet/ruflo.","triggerScenarios":"Thrown at v3/@claude-flow/plugin-agent-federation/src/plugin.ts:370 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add the target peer to the discovery registry or correct the target node ID; sends to unknown peers are aborted."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}