ruvnet/ruflo · error
Inbound rejected: no sourceNodeId in metadata (from ${addres
Error message
Inbound rejected: no sourceNodeId in metadata (from ${address}) What it means
Log warning in dispatchInbound: an incoming federation message carries no metadata.sourceNodeId, so its claimed cryptographic identity is absent; the message is audited and rejected with reason MISSING_METADATA.
Source
Thrown at v3/@claude-flow/plugin-agent-federation/src/application/inbound-dispatcher.ts:284
* `address` is the wire-level remote (e.g. `192.168.1.42:54321`).
* `message.metadata.sourceNodeId` is the cryptographic identity claim.
* The two MAY differ (e.g. behind NAT) — we trust `sourceNodeId` for
* peer lookup since it's bound to the Ed25519 keypair.
*/
export async function dispatchInbound(
address: string,
message: AgentMessage,
deps: InboundDispatchDeps,
): Promise<InboundDispatchOutcome> {
const meta = (message.metadata ?? {}) as Record<string, unknown>;
const sourceNodeId = typeof meta.sourceNodeId === 'string' ? meta.sourceNodeId : null;
if (!sourceNodeId) {
await deps.audit.log('message_rejected', {
sourceNodeId: undefined,
metadata: { address, reason: 'MISSING_METADATA' },
});
deps.logger.warn(`Inbound rejected: no sourceNodeId in metadata (from ${address})`);
return { accepted: false, reason: 'MISSING_METADATA' };
}
const peer = deps.discovery.getPeer(sourceNodeId);
if (!peer) {
await deps.audit.log('message_rejected', {
sourceNodeId,
metadata: { address, reason: 'PEER_UNKNOWN' },
});
deps.logger.warn(`Inbound rejected: ${sourceNodeId} not in discovery (from ${address})`);
return { accepted: false, reason: 'PEER_UNKNOWN' };
}
if (peer.state === FederationNodeState.SUSPENDED) {
await deps.audit.log('message_rejected', {
sourceNodeId,
metadata: { address, reason: 'PEER_SUSPENDED' },
});View on GitHub (pinned to fa13ee4ad6)
Solutions
- Fix the sending peer to include sourceNodeId in message metadata; messages without it are rejected.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at v3/@claude-flow/plugin-agent-federation/src/application/inbound-dispatcher.ts:284 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18).
Data as JSON: /api/errors/10447e9e22608f59.
Report an issue: GitHub.