{"record":{"id":"cf878ccd64456f16","repo":"qishibo/AnotherRedisDesktopManager","slug":"e-message-cf878c","errorCode":null,"errorMessage":"e.message","messagePattern":"e\\.message","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/components/contents/KeyContentTimeSeries.vue","lineNumber":178,"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('TS.INFO', 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]] = this.flatArrayInfo(reply[i + 1]);\n          }\n        }\n        this.infoDict = info;\n        this.total = Number(info.totalSamples) || 0;\n      });\n    },\n    flatArrayInfo(lines) {\n      if (!Array.isArray(lines)) {\n        return String(lines);\n      }","sourceCodeStart":160,"sourceCodeEnd":196,"githubUrl":"https://github.com/qishibo/AnotherRedisDesktopManager/blob/c149855106628babcdfb7675a8e7ba9434d2492a/src/components/contents/KeyContentTimeSeries.vue#L160-L196","documentation":"Toast showing e.message when TS.INFO (or the subsequent TS.REVRANGE scan) fails during initShow() in KeyContentTimeSeries.vue:178. TS.* commands are served by the RedisTimeSeries module; on a server without it, ioredis rejects with \"ERR unknown command 'TS.INFO'\" — the most common text seen here. Other rejections: deleted key (\"ERR TSDB: the key does not exist\"), connection loss, or cluster nodes lacking the module.","triggerScenarios":"initInfo() calling TS.INFO fails when: the RedisTimeSeries module is not loaded (OSS Redis without modules, wrong docker image); connecting to a cluster where some masters lack the module; the browsed key was deleted or expired between sidebar click and content load; the connection dropped.","commonSituations":"Opening a TimeSeries key on plain redis:latest instead of redis/redis-stack; module list differing across cluster nodes after a partial upgrade; clicking a key that a retention job just removed.","solutions":["Run MODULE LIST in the console; if timeseries is absent, use a RedisStack image or LOAD the module (MODULE LOAD timeseries.so) and restart","Verify you connected to the intended node — in clusters every master must carry the module","If the message says the key does not exist, refresh the sidebar — the key is gone","On connection errors, reconnect and reopen the key"],"exampleFix":"// before\nthis.initInfo().then(() => { this.listScan(); }).catch((e) => {\n  this.$message.error(e.message);\n});\n\n// after: distinguish missing module from missing key\n.catch((e) => {\n  if (/unknown command/i.test(e.message)) {\n    this.$message.error('RedisTimeSeries module not loaded on this server');\n  } else { this.$message.error(e.message); }\n});","handlingStrategy":"try-catch","validationCode":"// probe module availability once per connection before rendering TS views\nconst mods = await this.client.call('MODULE', 'LIST');\nconst hasTS = mods.some(m => String(m[1]).toLowerCase().includes('timeseries'));\nif (!hasTS) { this.$message.error('RedisTimeSeries module not loaded'); return; }","typeGuard":null,"tryCatchPattern":".catch((e) => {\n  if (/unknown command/i.test(e.message)) this.$message.error('RedisTimeeries module not loaded on this server');\n  else if (/does not exist/i.test(e.message)) this.refreshKeyList();\n  else this.$message.error(e.message);\n})","preventionTips":["Use RedisStack (or load the timeseries module) on servers you will browse TS.* keys from","Run MODULE LIST after connecting to a new environment","In clusters, ensure every master carries the module"],"tags":["redis","redistimeseries","module-not-loaded","ardm"],"backgroundTag":"redis-module-not-loaded","analyzedSha":"c149855106628babcdfb7675a8e7ba9434d2492a","analyzedAt":"2026-08-22T09:06:28.613Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}