qishibo/AnotherRedisDesktopManager · error
e.message
Error message
e.message
What it means
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.
Source
Thrown at src/components/contents/KeyContentVector.vue:208
// scroll to bottom while loading more
if (oldValue.length && (newValue.length > oldValue.length)) {
setTimeout(() => {
this.$refs.contentTable && this.$refs.contentTable.scrollTo(0, 99999999);
}, 0);
}
},
},
methods: {
initShow(resetTable = true) {
resetTable && this.resetTable();
this.loadingIcon = 'el-icon-loading';
this.initInfo().then(() => {
this.listPage();
}).catch((e) => {
this.loadingIcon = '';
this.loadMoreDisable = true;
this.$message.error(e.message);
});
},
resetTable() {
this.vectorData = [];
this.vrangeStart = '-';
this.loadMoreDisable = false;
},
loadMore() {
this.loadingIcon = 'el-icon-loading';
this.listPage();
},
initInfo() {
return this.client.call('VINFO', this.redisKey).then((reply) => {
const info = {};
if (reply && reply.length) {
for (let i = 0; i < reply.length; i += 2) {
info[reply[i]] = reply[i + 1];
}View on GitHub (pinned to c149855106)
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
Defensive patterns
Strategy: validation
Validate before calling
const [type, cmd] = await Promise.all([
client.call('TYPE', key),
client.call('COMMAND', 'INFO', 'VINFO').catch(() => null),
]);
const vectorSetsSupported = !!(cmd && cmd[0]);
if (!vectorSetsSupported) throw new Error('Server lacks vector sets (Redis >= 8.4 required)');
if (type !== 'vectorset') throw new Error(`Key type is ${type}, expected vectorset`); Type guard
const hasCommand = (reply) => Array.isArray(reply) && Array.isArray(reply[0]) && reply[0].length > 1;
Try / catch
this.initInfo().catch((e) => {
this.loadingIcon = '';
this.loadMoreDisable = true;
this.$message.error(/unknown command/i.test(e.message) ? 'Vector sets not supported by this server' : e.message);
}); Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- Sentinel & Cluster cannot be checked together!
- message || this.$t('message.test_connection_failed')
- this.$t('message.test_connection_timeout')
- Exists Error: ${e.message}
- err.message
AI-assisted analysis of qishibo/AnotherRedisDesktopManager@c149855106 (2026-08-22).
Data as JSON: /api/errors/3213a4616ee7a0ea.
Report an issue: GitHub.