{"record":{"id":"3213a4616ee7a0ea","repo":"qishibo/AnotherRedisDesktopManager","slug":"e-message-3213a4","errorCode":null,"errorMessage":"e.message","messagePattern":"e\\.message","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/components/contents/KeyContentVector.vue","lineNumber":208,"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.listPage();\n      }).catch((e) => {\n        this.loadingIcon = '';\n        this.loadMoreDisable = true;\n        this.$message.error(e.message);\n      });\n    },\n    resetTable() {\n      this.vectorData = [];\n      this.vrangeStart = '-';\n      this.loadMoreDisable = false;\n    },\n    loadMore() {\n      this.loadingIcon = 'el-icon-loading';\n      this.listPage();\n    },\n    initInfo() {\n      return this.client.call('VINFO', 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          }","sourceCodeStart":190,"sourceCodeEnd":226,"githubUrl":"https://github.com/qishibo/AnotherRedisDesktopManager/blob/c149855106628babcdfb7675a8e7ba9434d2492a/src/components/contents/KeyContentVector.vue#L190-L226","documentation":"initShow chains initInfo() — a raw VINFO call — and on rejection resets the loading state and shows e.message. VINFO fails when the command does not exist ('unknown command' on Redis < 8.4 or without the vector-set module), when the key no longer holds a vector set, or on connection failure. Because dim/total derive from VINFO, a failure here leaves the whole vector tab unusable.","triggerScenarios":"Opening a vector-set key on a server built without vector sets (Redis < 8.4, module not loaded); the key replaced by a string/hash so VINFO errors; socket drop exactly at tab-open; failover to an older node.","commonSituations":"Pointing the GUI at a legacy Redis 6/7 instance after using vector sets elsewhere; MODULE LIST missing vectorsets; connection profiles switching between old and new clusters.","solutions":["Upgrade to Redis >= 8.4 or load the vector-set module, and confirm with MODULE LIST / COMMAND INFO VINFO","Verify the key TYPE is still vectorset and re-open the tab","If the message is connection-level, reconnect and reopen the key"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"const [type, cmd] = await Promise.all([\n  client.call('TYPE', key),\n  client.call('COMMAND', 'INFO', 'VINFO').catch(() => null),\n]);\nconst vectorSetsSupported = !!(cmd && cmd[0]);\nif (!vectorSetsSupported) throw new Error('Server lacks vector sets (Redis >= 8.4 required)');\nif (type !== 'vectorset') throw new Error(`Key type is ${type}, expected vectorset`);","typeGuard":"const hasCommand = (reply) => Array.isArray(reply) && Array.isArray(reply[0]) && reply[0].length > 1;","tryCatchPattern":"this.initInfo().catch((e) => {\n  this.loadingIcon = '';\n  this.loadMoreDisable = true;\n  this.$message.error(/unknown command/i.test(e.message) ? 'Vector sets not supported by this server' : e.message);\n});","preventionTips":["Gate the vector-set UI on COMMAND INFO VINFO availability, not just on key type","Re-run VINFO when the connection target changes — capability flags must not outlive the connection they were probed on","Show a capability-specific message for 'unknown command' instead of the raw server error"],"tags":["redis","vector-sets","vinfo","ioredis","version-compat"],"backgroundTag":"redis-command-error","analyzedSha":"c149855106628babcdfb7675a8e7ba9434d2492a","analyzedAt":"2026-08-22T09:06:28.613Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}