ruvnet/ruflo · error

Inbound authorization failed for ${sourceNodeId} (addr=${add

Error message

Inbound authorization failed for ${sourceNodeId} (addr=${address})

What it means

Logged in dispatchInbound after the ADR-325 inbound authorization evaluator threw or returned a malformed decision (missing/non-boolean allowed) while authorizing a federated peer message. In enforce mode it accompanies a message_rejected audit entry and an accepted:false/AUTHORIZATION_ERROR result, so the inbound envelope is dropped rather than dispatched.

Source

Thrown at v3/@claude-flow/plugin-agent-federation/src/application/inbound-dispatcher.ts:416

        address,
        sourceNodeId,
        messageType: message.type,
        message,
        peer,
        signatureVersion,
        messageSizeBytes: new TextEncoder().encode(canonicalEnvelope).byteLength,
      });
      if (!decision || typeof decision.allowed !== 'boolean') {
        throw new TypeError('Inbound authorization evaluator returned an invalid decision');
      }
      authorizationDecision = decision;
    } catch {
      if (authorizationMode === 'enforce') {
        await deps.audit.log('message_rejected', {
          sourceNodeId,
          metadata: { address, reason: 'AUTHORIZATION_ERROR', messageType: message.type },
        });
        deps.logger.warn(`Inbound authorization failed for ${sourceNodeId} (addr=${address})`);
        return { accepted: false, reason: 'AUTHORIZATION_ERROR' };
      }
      deps.logger.warn(
        `Inbound authorization observation failed for ${sourceNodeId} (mode=${authorizationMode})`,
      );
    }
  } else if (authorizationMode === 'enforce') {
    await deps.audit.log('message_rejected', {
      sourceNodeId,
      metadata: { address, reason: 'AUTHORIZATION_ERROR', messageType: message.type },
    });
    deps.logger.warn('Inbound rejected: enforce mode has no authorization evaluator');
    return { accepted: false, reason: 'AUTHORIZATION_ERROR' };
  }

  if (authorizationDecision && !authorizationDecision.allowed) {
    if (authorizationMode === 'enforce') {
      await deps.audit.log('message_rejected', {

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Inspect the authorization evaluator error for the node; fix the evaluator or its policy input.
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at v3/@claude-flow/plugin-agent-federation/src/application/inbound-dispatcher.ts:416 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/103197c1c54fa617. Report an issue: GitHub.