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
- 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.