{"record":{"id":"d4e9fa1eff615725","repo":"ruvnet/ruflo","slug":"federation-transport-does-not-expose-onmessage","errorCode":null,"errorMessage":"Federation transport does not expose onMessage(); inbound bytes will queue but not dispatch. Upgrade agentic-flow to >= 2.0.12-fix.3.","messagePattern":"Federation transport does not expose onMessage\\(\\); inbound bytes will queue but not dispatch\\. Upgrade agentic-flow to >= 2\\.0\\.12-fix\\.3\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/plugin-agent-federation/src/plugin.ts","lineNumber":481,"sourceCode":"          audit,\n          eventBus: context.eventBus,\n          logger: context.logger,\n          verifyEnvelope,\n          acceptedSignatureVersions:\n            signatureMode === 'require-jcs' ? ['jcs-v1'] : ['legacy-v1', 'jcs-v1'],\n          authorizationMode,\n          authorizeInbound: ({ messageType, peer, messageSizeBytes, sourceNodeId }) =>\n            policyEngine.evaluateMessage(\n              messageType as FederationMessageType,\n              peer.trustLevel,\n              messageSizeBytes,\n              sourceNodeId,\n            ),\n        });\n      });\n      context.logger.debug('Federation inbound dispatcher subscribed (with Ed25519 sig verify)');\n    } else {\n      context.logger.warn(\n        'Federation transport does not expose onMessage(); inbound bytes will queue but not dispatch. ' +\n          'Upgrade agentic-flow to >= 2.0.12-fix.3.',\n      );\n    }\n\n    // A2A Agent Card well-known endpoint (opt-in, graceful). Enabled with\n    // config.a2aCard = true + config.a2aCardPort. Serves the local node's\n    // manifest as a spec-compliant A2A 1.0 card at\n    // /.well-known/agent-card.json. Binds 127.0.0.1 unless config.a2aCardHost\n    // is set AND config.a2aCardAllowNonLoopback is true (ADR-166: never\n    // loosen binding implicitly). A bind failure logs and degrades — the\n    // rest of federation is unaffected.\n    const a2aEnabled = config['a2aCard'] === true;\n    const a2aPort = config['a2aCardPort'] as number | undefined;\n    if (a2aEnabled && typeof a2aPort === 'number') {\n      try {\n        this.agentCardServer = await startAgentCardServer({\n          getCard: () => {","sourceCodeStart":463,"sourceCodeEnd":499,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/plugin-agent-federation/src/plugin.ts#L463-L499","documentation":"Capability check on the loaded federation transport during initialize: the transport object lacks an onMessage() subscription API (older agentic-flow), so inbound envelopes will be queued by the plugin but never dispatched to the inbound pipeline. The log instructs upgrading agentic-flow to at least 2.0.12-fix.3 where the transport contract includes onMessage().","triggerScenarios":"Thrown at v3/@claude-flow/plugin-agent-federation/src/plugin.ts:481 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Upgrade agentic-flow to >= 2.0.12-fix.3 so inbound messages dispatch instead of queuing."],"exampleFix":null,"handlingStrategy":"fallback","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"}