qishibo/AnotherRedisDesktopManager · warning
${this.redisKey} ${this.$t('message.delete_failed')}
Error message
${this.redisKey} ${this.$t('message.delete_failed')} What it means
KeyHeader.vue delete flow: after user confirmation, client.del(redisKey) resolves with the number of keys removed; reply != 1 means the source key no longer existed (expired or deleted elsewhere), so the '<key> delete_failed' toast is shown. The DEL succeeded but removed nothing, and the tab stays open because removePreTab is only called on success.
Source
Thrown at src/components/KeyHeader.vue:143
this.$emit('dumpCommand');
},
deleteKey() {
this.$confirm(
this.$t('message.confirm_to_delete_key', { key: this.$util.bufToString(this.redisKey) }),
{ type: 'warning' },
)
.then(() => {
this.client.del(this.redisKey).then((reply) => {
if (reply == 1) {
this.$message.success({
message: this.$t('message.delete_success'),
duration: 1000,
});
this.$bus.$emit('removePreTab');
this.refreshKeyList(this.redisKey);
} else {
this.$message.error({
message: `${this.redisKey} ${this.$t('message.delete_failed')}`,
duration: 1000,
});
}
}).catch((e) => { this.$message.error(e.message); });
}).catch(() => {});
},
renameKey(e) {
// input blur to prevent trigger twice by enter
e && e.srcElement.blur();
if (this.keyName.equals(this.redisKey)) {
return;
}
const inputTxt = 'y';
const placeholder = this.$t('message.flushdb_prompt', { txt: inputTxt });
View on GitHub (pinned to c149855106)
Solutions
- Refresh the key list - the key will be gone from it.
- Close the stale tab manually (it does not auto-close on this path).
- If the key still exists after refresh, retry the delete.
Defensive patterns
Strategy: validation
Validate before calling
const exists = await client.exists(this.redisKey);
if (!exists) { this.$bus.$emit('removePreTab'); this.refreshKeyList(this.redisKey); return; } Type guard
const wasDeleted = (reply) => reply === 1;
Try / catch
this.client.del(this.redisKey).then((reply) => {
if (wasDeleted(reply)) { /* success: removePreTab */ }
else {
// key already gone server-side: close the stale tab and refresh instead of erroring
this.$bus.$emit('removePreTab');
this.refreshKeyList(this.redisKey);
}
}); Prevention
- Treat DEL reply 0 as 'key already gone': close the tab and refresh rather than showing delete_failed.
- Re-check existence for keys with TTLs before destructive actions from stale tabs.
When it happens
Trigger: Key expired between opening the tab and pressing delete; key deleted from another session/tool; tab left open on a key with a short TTL.
Common situations: Multiple GUI sessions or an app deleting keys while the tab is open; TTLs expiring during analysis workflows.
Related errors
- this.$t('message.delete_failed')
- e.message
- e.message
- Rename Error: ${e.message}
- this.$t('message.delete_failed')
AI-assisted analysis of qishibo/AnotherRedisDesktopManager@c149855106 (2026-08-22).
Data as JSON: /api/errors/9d1642e16fd2de49.
Report an issue: GitHub.