{"record":{"id":"bc7d6f0124da8768","repo":"qishibo/AnotherRedisDesktopManager","slug":"e-message-bc7d6f","errorCode":null,"errorMessage":"e.message","messagePattern":"e\\.message","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/components/contents/KeyContentArray.vue","lineNumber":138,"sourceCode":"      // scroll to bottom while loading more\n      if (oldValue.length && (newValue.length > oldValue.length)) {\n        setTimeout(() => {\n          this.$refs.contentTable && this.$refs.contentTable.scrollTo(0, 99999999);\n        }, 0);\n      }\n    },\n  },\n  methods: {\n    initShow(resetTable = true) {\n      resetTable && this.resetTable();\n      this.loadingIcon = 'el-icon-loading';\n\n      this.initInfo().then(() => {\n        this.listScan();\n      }).catch((e) => {\n        this.loadingIcon = '';\n        this.loadMoreDisable = true;\n        this.$message.error(e.message);\n      });\n    },\n    initInfo() {\n      return this.client.call('ARINFO', this.redisKey).then((reply) => {\n        const info = {};\n        if (reply && reply.length) {\n          for (let i = 0; i < reply.length; i += 2) {\n            info[reply[i]] = reply[i + 1];\n          }\n        }\n        this.infoDict = info;\n        this.total = Number(info.count) || 0;\n      });\n    },\n    showInfo() {\n      this.initInfo().then(() => {\n        this.infoVisible = true;\n      }).catch((e) => {","sourceCodeStart":120,"sourceCodeEnd":156,"githubUrl":"https://github.com/qishibo/AnotherRedisDesktopManager/blob/c149855106628babcdfb7675a8e7ba9434d2492a/src/components/contents/KeyContentArray.vue#L120-L156","documentation":"initShow() chains initInfo() (ARINFO) then listScan(); this outer catch surfaces any failure, clears the loading icon, and disables load-more. ARINFO/ARGREP/ARSET are custom module commands backing the array-type viewer, so against a stock community Redis the most common failure is \"ERR unknown command 'ARINFO'\"; WRONGTYPE appears when the key is not actually an array-type key.","triggerScenarios":"Opening an array-type key on a server where the AR* module is not loaded (MODULE LIST shows no provider); opening a key routed to this viewer whose actual type differs; connection loss during the initial load.","commonSituations":"A generic connection profile used against a server lacking the module; module disabled by an ops change; version skew between the module and the app's viewer.","solutions":["Confirm the module is loaded: MODULE LIST in the CLI tab, and run ARINFO key manually to see the raw error","Fix the connection profile so the array viewer is only used against module-enabled servers","Install/upgrade the module per your server distribution","Until the viewer backend exists, manage such keys via raw CLI commands"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// probe module availability before rendering the array viewer\nconst info = await client.command('command', 'info', 'ARINFO');\nconst moduleLoaded = Array.isArray(info) && info[0];\nif (!moduleLoaded) {\n  renderCliFallback(key); // instead of a table that can only fail\n}","typeGuard":null,"tryCatchPattern":"// one catch for the whole init chain, but preserve the raw cause\ntry {\n  await initInfo();\n  await listScan();\n} catch (e) {\n  this.loadingIcon = '';\n  this.loadMoreDisable = true;\n  // e.message is usually \"ERR unknown command 'ARINFO'\" or WRONGTYPE - show it verbatim\n  this.$message.error(e.message);\n}","preventionTips":["Verify MODULE LIST includes the AR* provider before opening array keys","Scope array-type connection profiles to servers that actually run the module","Test one ARINFO call manually when a server's module setup changes"],"tags":["redis","redis-module","unknown-command","array-type","ardm"],"backgroundTag":"unknown-redis-command","analyzedSha":"c149855106628babcdfb7675a8e7ba9434d2492a","analyzedAt":"2026-08-22T09:06:28.613Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}