qishibo/AnotherRedisDesktopManager · error
msg
Error message
msg
What it means
The shared failure sink of the batch-delete flow: deleteFailed(msg) shows the message and resets loadingScan/loadingDelete so the buttons unstick. It receives either the localized 'delete failed' (DEL replied 0) or a raw e.message from a rejected DEL — so the visible text identifies the upstream cause. With an empty msg it silently resets state only.
Source
Thrown at src/components/DeleteBatch.vue:201
}
},
afterDelete() {
this.loadingDelete = false;
this.allKeysList = [];
// empty the specified keys
// this.rule.key = [];
this.$message.success(this.$t('message.delete_success'));
this.$bus.$emit('refreshKeyList', this.client);
// except pattern mode scanning not to end, close pre tab
if (!this.rule.pattern.length || this.scanningEnd) {
this.$bus.$emit('removePreTab');
}
},
deleteFailed(msg = '') {
msg && this.$message.error(msg);
this.loadingScan = false;
this.loadingDelete = false;
},
initShortcut() {
this.$shortcut.bind('ctrl+r, ⌘+r, f5', this.hotKeyScope, () => {
this.initKeys();
return false;
});
},
},
mounted() {
this.initKeys();
// disable f5 for streams on event cannot stop
// this.initShortcut();
},
beforeDestroy() {
// this.$shortcut.deleteScope(this.hotKeyScope);View on GitHub (pinned to c149855106)
Solutions
- Differentiate the messages: 'no keys existed to delete' vs the raw command error, instead of one generic delete_failed string
- Always call this (even with empty msg) after any delete-path failure so the UI never sticks in loading state
- Trigger a re-scan after failure so the list reflects reality
- Log the raw error alongside the localized text for diagnostics
Example fix
// before
deleteFailed(msg = '') {
msg && this.$message.error(msg);
this.loadingScan = false;
this.loadingDelete = false;
},
// after
deleteFailed(msg = '', raw = null) {
msg && this.$message.error({ message: msg, duration: 3000 });
raw && console.warn('[DeleteBatch]', raw);
this.loadingScan = false;
this.loadingDelete = false;
}, Defensive patterns
Strategy: try-catch
Try / catch
try {
await delWork();
} catch (e) {
this.deleteFailed(this.$t('message.delete_failed'), e);
} finally {
this.loadingScan = false;
this.loadingDelete = false;
} Prevention
- Centralize failure cleanup in one sink and always reset loading flags
- Pass distinct messages for 'nothing deleted' vs command failure
- Keep raw errors in logs for support
- Re-scan after any delete failure to re-sync the list
When it happens
Trigger: Any failure in deleteKeys() routes here: DEL deleted nothing (reply 0), DEL rejected (connection/auth/readonly/cluster), or a caller passes '' to only reset the loading flags.
Common situations: Shared cleanup path after scan/delete failures; callers that just need the loading flags cleared.
Related errors
- this.$t('message.delete_failed')
- e.message
- Delete Batch Stream On Error: ${e.message}
- You are in readonly mode! Unable to execute write command!
- this.$t('message.delete_failed')
AI-assisted analysis of qishibo/AnotherRedisDesktopManager@c149855106 (2026-08-22).
Data as JSON: /api/errors/feaad736506b911e.
Report an issue: GitHub.