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

  1. Upgrade to Redis >= 8.4 or load the vector-set module, and confirm with MODULE LIST / COMMAND INFO VINFO
  2. Verify the key TYPE is still vectorset and re-open the tab
  3. 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

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


AI-assisted analysis of qishibo/AnotherRedisDesktopManager@c149855106 (2026-08-22). Data as JSON: /api/errors/3213a4616ee7a0ea. Report an issue: GitHub.