{"record":{"id":"103197c1c54fa617","repo":"ruvnet/ruflo","slug":"inbound-authorization-failed-for-sourcenodeid","errorCode":null,"errorMessage":"Inbound authorization failed for ${sourceNodeId} (addr=${address})","messagePattern":"Inbound authorization failed for (.+?) \\(addr=(.+?)\\)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/plugin-agent-federation/src/application/inbound-dispatcher.ts","lineNumber":416,"sourceCode":"        address,\n        sourceNodeId,\n        messageType: message.type,\n        message,\n        peer,\n        signatureVersion,\n        messageSizeBytes: new TextEncoder().encode(canonicalEnvelope).byteLength,\n      });\n      if (!decision || typeof decision.allowed !== 'boolean') {\n        throw new TypeError('Inbound authorization evaluator returned an invalid decision');\n      }\n      authorizationDecision = decision;\n    } catch {\n      if (authorizationMode === 'enforce') {\n        await deps.audit.log('message_rejected', {\n          sourceNodeId,\n          metadata: { address, reason: 'AUTHORIZATION_ERROR', messageType: message.type },\n        });\n        deps.logger.warn(`Inbound authorization failed for ${sourceNodeId} (addr=${address})`);\n        return { accepted: false, reason: 'AUTHORIZATION_ERROR' };\n      }\n      deps.logger.warn(\n        `Inbound authorization observation failed for ${sourceNodeId} (mode=${authorizationMode})`,\n      );\n    }\n  } else if (authorizationMode === 'enforce') {\n    await deps.audit.log('message_rejected', {\n      sourceNodeId,\n      metadata: { address, reason: 'AUTHORIZATION_ERROR', messageType: message.type },\n    });\n    deps.logger.warn('Inbound rejected: enforce mode has no authorization evaluator');\n    return { accepted: false, reason: 'AUTHORIZATION_ERROR' };\n  }\n\n  if (authorizationDecision && !authorizationDecision.allowed) {\n    if (authorizationMode === 'enforce') {\n      await deps.audit.log('message_rejected', {","sourceCodeStart":398,"sourceCodeEnd":434,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/plugin-agent-federation/src/application/inbound-dispatcher.ts#L398-L434","documentation":"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.","triggerScenarios":"Thrown at v3/@claude-flow/plugin-agent-federation/src/application/inbound-dispatcher.ts:416 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the authorization evaluator error for the node; fix the evaluator or its policy input."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}