qishibo/AnotherRedisDesktopManager · warning

${key} ${this.$t('message.key_not_exists')}

Error message

${key} ${this.$t('message.key_not_exists')}

What it means

client.type(key) resolved with the string 'none' — Redis returns TYPE none for a key that does not exist. This is not a command failure: the key expired, was deleted by another client, or the page references a key from a different DB. The app blocks opening the tab and shows '<key> does not exist' for one second.

Source

Thrown at src/components/Tabs.vue:201

      this.addTab(newTabItem, true);
    },
    addSlowLogTab(client, tabName) {
      const newTabItem = {
        name: `slowlog_${tabName}_${Math.random()}`,
        label: this.$util.cutString(tabName),
        title: tabName,
        client,
        component: 'slowlog',
      };

      this.addTab(newTabItem, true);
    },
    addKeyTab(client, key, newTab = false) {
      client.type(key).then((type) => {
        // key not exists
        if (type === 'none') {
          this.$message.error({
            message: `${key} ${this.$t('message.key_not_exists')}`,
            duration: 1000,
          });

          return;
        }

        this.addTab(this.initKeyTabItem(client, key, type), newTab);
      }).catch((e) => {
        this.$message.error(`Type Error: ${e.message}`);
      });
    },
    initKeyTabItem(client, key, type) {
      const { cutString } = this.$util;
      const dbIndex = client.condition ? client.condition.select : 0;
      const { connectionName } = client.options;
      const keyStr = this.$util.bufToString(key);

View on GitHub (pinned to c149855106)

Solutions

  1. Refresh the key list (the row disappears) and retry with an existing key
  2. Confirm the correct DB/connection is selected
  3. Check TTL on volatile keys before relying on their presence
  4. Treat 'none' as expected drift in shared environments, not an error
Defensive patterns

Strategy: validation

Validate before calling

const exists = await client.exists(key);
if (!exists) {
  this.$message.error(`${key} ${this.$t('message.key_not_exists')}`);
  return;
}

Type guard

const isExistingKeyType = (type) => typeof type === 'string' && type !== 'none';

Prevention

When it happens

Trigger: Clicking a stale row in the key list whose TTL expired between scan and click; another operator or CLI deleting the key first; the key list cached from a different DB or connection; refresh races right after batch deletes.

Common situations: Short-TTL session/lock keys, multi-operator cleanups, stale key lists after switching DBs, old bookmarks or reopened tabs pointing at removed keys.

Related errors


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