ruvnet/ruflo · error

Inbound rejected: legacy-v1 is not permitted for message typ

Error message

Inbound rejected: legacy-v1 is not permitted for message type ${message.type} from ${sourceNodeId}

What it means

Log warning in dispatchInbound: the message uses the legacy-v1 signature scheme, which omits nested fields, for a message type where unauthenticated bytes cannot be permitted; the gate is policy-independent and the message is rejected with LEGACY_SIGNATURE_TYPE_REJECTED.

Source

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

    }
  }

  // The legacy serializer omits nested fields. No policy grant can make those
  // unauthenticated bytes safe for a consequential operation, so this gate is
  // independent of authorization compatibility mode.
  if (
    signatureVersion === 'legacy-v1' &&
    !isLegacyEnvelopeTypeAllowed(message.type)
  ) {
    await deps.audit.log('message_rejected', {
      sourceNodeId,
      metadata: {
        address,
        reason: 'LEGACY_SIGNATURE_TYPE_REJECTED',
        messageType: message.type,
      },
    });
    deps.logger.warn(
      `Inbound rejected: legacy-v1 is not permitted for message type ${message.type} ` +
        `from ${sourceNodeId}`,
    );
    return { accepted: false, reason: 'LEGACY_SIGNATURE_TYPE_REJECTED' };
  }

  const authorizationMode = deps.authorizationMode ?? 'legacy';
  if (
    authorizationMode !== 'legacy' &&
    authorizationMode !== 'observe' &&
    authorizationMode !== 'enforce'
  ) {
    await deps.audit.log('message_rejected', {
      sourceNodeId,
      metadata: { address, reason: 'AUTHORIZATION_ERROR' },
    });
    return { accepted: false, reason: 'AUTHORIZATION_ERROR' };
  }

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Upgrade the sending peer off legacy-v1 for this message type, or permit the type in policy if the legacy peer is trusted.
Defensive patterns

Strategy: validation

When it happens

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