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
- Refresh the key list (the row disappears) and retry with an existing key
- Confirm the correct DB/connection is selected
- Check TTL on volatile keys before relying on their presence
- 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
- Expect TYPE 'none' for missing keys and handle it before opening tabs
- Refresh lists before acting on volatile keys
- Surface TTL in the UI for short-lived keys
- Auto-prune list rows that fail an exists check
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
- Type Error: ${e.message}
- You are in readonly mode! Unable to execute write command!
- Persist Error: ${e.message}
- e.message
- this.$t('message.info_disabled')
AI-assisted analysis of qishibo/AnotherRedisDesktopManager@c149855106 (2026-08-22).
Data as JSON: /api/errors/2f317253f1d9cd77.
Report an issue: GitHub.