{"record":{"id":"bde1082f34fa0ac2","repo":"ruvnet/ruflo","slug":"command-not-allowed","errorCode":"COMMAND_NOT_ALLOWED","errorMessage":"Command not in allowlist: ${command}","messagePattern":"Command not in allowlist: (.+?)","errorType":"exception","errorClass":"SafeExecutorError","httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/security/src/safe-executor.ts","lineNumber":233,"sourceCode":"  }\n\n  /**\n   * Validates a command against the allowlist.\n   *\n   * @param command - Command to validate\n   * @throws SafeExecutorError if command is not allowed\n   */\n  private validateCommand(command: string): void {\n    const basename = path.basename(command);\n\n    // Check if command is allowed\n    const isAllowed = this.config.allowedCommands.some(allowed => {\n      const allowedBasename = path.basename(allowed);\n      return command === allowed || basename === allowedBasename;\n    });\n\n    if (!isAllowed) {\n      throw new SafeExecutorError(\n        `Command not in allowlist: ${command}`,\n        'COMMAND_NOT_ALLOWED',\n        command\n      );\n    }\n\n    // Check for sudo\n    if (!this.config.allowSudo && (command === 'sudo' || basename === 'sudo')) {\n      throw new SafeExecutorError(\n        'Sudo commands are not allowed',\n        'SUDO_NOT_ALLOWED',\n        command\n      );\n    }\n  }\n\n  /**\n   * Validates command arguments for injection patterns.","sourceCodeStart":215,"sourceCodeEnd":251,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/security/src/safe-executor.ts#L215-L251","documentation":"SafeExecutor.validateCommand could not match the requested command against any allowedCommands entry, either by full path or by basename. This is the core allowlist check firing: the executable was never approved for this executor, so execution stops before any spawn.","triggerScenarios":"Thrown at v3/@claude-flow/security/src/safe-executor.ts:233 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add the command to the executor allowlist if it is safe.","Fix the caller to use one of the allowed commands; check for typos in the command name."],"exampleFix":null,"handlingStrategy":"validation","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-14T05:17:10.506Z"}