ruvnet/ruflo · error
PEER_SIGNATURE_PROTOCOL_UNSUPPORTED_FOR_MESSAGE: ${messageTy
Error message
PEER_SIGNATURE_PROTOCOL_UNSUPPORTED_FOR_MESSAGE: ${messageType} What it means
Protocol negotiation fell back to legacy-v1 signing, but the message type being sent is not in the allowlist of legacy-envelope types (legacy envelopes cannot carry all message kinds securely). The combination 'legacy signature + this messageType' is unsupported, so the specific message type is named in the refusal.
Source
Thrown at v3/@claude-flow/plugin-agent-federation/src/application/inbound-dispatcher.ts:229
peerProtocols: readonly string[],
messageType?: string,
): EnvelopeSignatureVersion {
const selected = mode === 'legacy'
? 'legacy-v1'
: peerProtocols.includes(JCS_SIGNATURE_PROTOCOL)
? 'jcs-v1'
: mode === 'prefer-jcs'
? 'legacy-v1'
: null;
if (selected === null) {
throw new Error('PEER_SIGNATURE_PROTOCOL_UNSUPPORTED');
}
if (
selected === 'legacy-v1'
&& messageType !== undefined
&& !isLegacyEnvelopeTypeAllowed(messageType)
) {
throw new Error(`PEER_SIGNATURE_PROTOCOL_UNSUPPORTED_FOR_MESSAGE: ${messageType}`);
}
return selected;
}
export function canonicalizeEnvelopeForVerify(
message: AgentMessage,
requestedVersion?: EnvelopeSignatureVersion,
): string {
const meta = (message.metadata ?? {}) as Record<string, unknown>;
// Strip signature from metadata if present (we verify the rest)
const { signature: _sig, ...metaForSig } = meta;
const canon = {
id: message.id,
type: message.type,
payload: message.payload,
metadata: metaForSig,
};
const version = requestedVersion ?? envelopeSignatureVersion(message);View on GitHub (pinned to fa13ee4ad6)
Solutions
- Align both peers on a signature protocol version that supports the message type.
- Gate the message type behind a supported-version capability check before sending.
Defensive patterns
Strategy: fallback
When it happens
Trigger: A specific federation message type arrives signed with a protocol version not supported for that message type.
Common situations: Version skew where a message type requires a newer signature scheme than the peer used.
AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18).
Data as JSON: /api/errors/abea55d27dc8f9b9.
Report an issue: GitHub.