{"record":{"id":"eb86b93fd0b53aa3","repo":"qishibo/AnotherRedisDesktopManager","slug":"this-t-message-info-disabled","errorCode":null,"errorMessage":"this.$t('message.info_disabled')","messagePattern":"this\\.\\$t\\('message\\.info_disabled'\\)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"src/components/Status.vue","lineNumber":259,"sourceCode":"    initShow() {\n      // set global info dict\n      this.client.ardmInfo = {};\n\n      this.client.info().then((reply) => {\n        this.connectionStatus = this.initStatus(reply);\n        this.client.ardmInfo = this.connectionStatus;\n\n        // init db keys info\n        if (this.isCluster) {\n          this.initClusterKeys();\n        }\n        else {\n          this.DBKeys = this.initDbKeys(this.connectionStatus);\n        }\n      }).catch((e) => {\n        // info command may be disabled\n        if (e.message.includes('unknown command')) {\n          this.$message.error({\n            message: this.$t('message.info_disabled'),\n            duration: 3000,\n          });\n        }\n        // no auth not show\n        else if (e.message.includes('NOAUTH')) {} else {\n          this.$message.error(e.message);\n        }\n      });\n    },\n    refreshInit() {\n      this.refreshTimer && clearInterval(this.refreshTimer);\n\n      if (this.autoRefresh) {\n        this.initShow();\n\n        this.refreshTimer = setInterval(() => {\n          this.initShow();","sourceCodeStart":241,"sourceCodeEnd":277,"githubUrl":"https://github.com/qishibo/AnotherRedisDesktopManager/blob/c149855106628babcdfb7675a8e7ba9434d2492a/src/components/Status.vue#L241-L277","documentation":"Shown when the INFO command fails with 'unknown command'. That string means the server (or a proxy in front of it) does not offer INFO at all — typically because it was disabled with rename-command INFO \"\" in redis.conf, a common hardening step, or the endpoint is a proxy (twemproxy-style) implementing only a subset of commands. Redis 6+ ACL users without the info permission (NOPERM) can also disable the status panel. The app degrades gracefully with a localized notice.","triggerScenarios":"Connecting to a hardened Redis where INFO was renamed to the empty string; a Redis 6+ ACL user lacking +info; a proxy or managed endpoint that does not implement INFO.","commonSituations":"Production servers hardened per security guides, Docker images disabling INFO, teams behind twemproxy/predixy, ACL-restricted app users reused for GUI tools.","solutions":["If this tooling must show stats, re-enable INFO: remove rename-command INFO \"\" and restart, or grant +info to the ACL user","If INFO must stay disabled, accept the degraded status view and rely on redis-cli/monitoring","Verify you are connecting directly to Redis, not through a command-filtering proxy","For ACL setups, connect with a user that has +info"],"exampleFix":"# server side, redis.conf\n# disabled:\nrename-command INFO \"\"\n# re-enable: delete the rename-command line, restart redis\n\n# Redis 6+ ACL alternative (no restart of tooling needed)\nACL SETUSER gui_user >password ~* +@connection +@keyspace +info","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":".catch((e) => {\n  const m = String(e.message);\n  if (/unknown command/i.test(m)) {\n    this.infoDisabled = true; // INFO disabled via rename-command: degrade\n  } else if (/NOAUTH/.test(m)) {\n    // auth required: connection layer handles it\n  } else if (/NOPERM/.test(m)) {\n    this.infoDisabled = true; // Redis 6+ ACL denial\n  } else {\n    this.$message.error(m);\n  }\n})","preventionTips":["Audit rename-command entries before pointing GUI tools at hardened servers","Grant the connecting ACL user +info if stats are needed","Prefer direct connections over command-filtering proxies for admin tooling"],"tags":["redis","info","rename-command","acl","disabled-command"],"backgroundTag":"redis-unknown-command","analyzedSha":"c149855106628babcdfb7675a8e7ba9434d2492a","analyzedAt":"2026-08-22T09:06:28.613Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}