qishibo/AnotherRedisDesktopManager · error
e.message
Error message
e.message
What it means
The catch branch when the DEL command itself rejects in KeyListVirtualTree.vue. DEL is in the app's writeCMD table, so on a readonly connection the client-side guard rejects the promise locally; otherwise the rejection is an ACL denial (NOPERM), a lost connection, or another server error.
Source
Thrown at src/components/KeyListVirtualTree.vue:237
// del batch instead of single when multi operating
if (this.multiOperating) {
return this.deleteBatch();
}
const keyBuffer = Buffer.from(this.rightClickNode.data.nameBuffer.data);
this.client.del(keyBuffer).then((reply) => {
if (reply == 1) {
this.$message.success({
message: this.$t('message.delete_success'),
duration: 1000,
});
this.$bus.$emit('refreshKeyList', this.client, keyBuffer, 'del');
} else {
this.$message.error(this.$t('message.delete_failed'));
}
}).catch((e) => { this.$message.error(e.message); });
break;
}
// select multiple
case 'multiple_select': {
this.showMultiSelect();
break;
}
// open key in new tab
case 'open': {
this.clickKey(Buffer.from(this.rightClickNode.data.nameBuffer.data), true);
break;
}
// delete whole folder
case 'delete_folder': {
const rule = { pattern: [this.rightClickNode.data.fullName] };
this.$bus.$emit('openDelBatch', this.client, this.config.connectionName, rule);
break;
}View on GitHub (pinned to c149855106)
Solutions
- If the message is the readonly-mode text, uncheck Readonly in the connection config and reconnect.
- If 'NOPERM', grant the ACL user +del (or +@write / +@keyspace).
- If connection-related, reconnect and retry the delete.
Defensive patterns
Strategy: try-catch
Validate before calling
import { writeCMD } from '@/commands.js';
const delBlocked = client.options.connectionReadOnly && writeCMD['DEL']; // precheck readonly Type guard
const isWriteDenied = (e) => /readonly mode|NOPERM|not allowed/i.test(e.message);
Try / catch
this.client.del(keyBuffer).catch((e) => {
if (isWriteDenied(e)) {
this.$message.error('Delete not permitted (readonly connection or ACL) - fix config, retry is pointless');
} else {
this.$message.error(e.message); // transport error: reconnect and retry
}
}); Prevention
- Disable delete actions in the UI when client.options.connectionReadOnly is set.
- Grant ACL users +del when the GUI must delete keys.
- Distinguish permission errors (config fix) from connection errors (reconnect) - the remedies differ.
When it happens
Trigger: Deleting a key on a readonly-configured connection (client-side guard fires); ACL user without @write/@keyspace (+del); connection dropped between right-click and confirmation.
Common situations: Readonly connection to production; restricted ACL account used for the GUI; network blip during tree operations.
Related errors
AI-assisted analysis of qishibo/AnotherRedisDesktopManager@c149855106 (2026-08-22).
Data as JSON: /api/errors/3995735210f1e071.
Report an issue: GitHub.