qishibo/AnotherRedisDesktopManager · error

e.message

Error message

e.message

What it means

The catch branch when DEL rejects in KeyHeader.vue's confirmed delete flow. DEL is in the app's writeCMD table, so a readonly connection rejects locally with the readonly message before reaching the server; otherwise the rejection is an ACL denial (NOPERM), a dropped connection, or a server error.

Source

Thrown at src/components/KeyHeader.vue:148

        { 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 });

      // force confirm rename operation
      this.$prompt(
        this.$t('message.confirm_to_rename_key', {
          old: this.$util.bufToString(this.redisKey),
          new: this.$util.bufToString(this.keyName),

View on GitHub (pinned to c149855106)

Solutions

  1. If the readonly-mode message appears, disable Readonly in connection settings and reconnect.
  2. If 'NOPERM', grant +del (or +@write) to the ACL user.
  3. If connection-related, reconnect and retry from the key tab.
Defensive patterns

Strategy: try-catch

Validate before calling

import { writeCMD } from '@/commands.js';
const delBlocked = client.options.connectionReadOnly && writeCMD['DEL'];

Type guard

const isWriteDenied = (e) => /readonly mode|NOPERM|not allowed/i.test(e.message);

Try / catch

this.client.del(this.redisKey).catch((e) => {
  if (isWriteDenied(e)) {
    this.$message.error('Delete not permitted (readonly connection or ACL)');
  } else {
    this.$message.error(e.message); // transport: reconnect and retry
  }
});

Prevention

When it happens

Trigger: Deleting from a key tab on a readonly-configured connection; ACL user without +del/@write; connection lost between the confirm dialog and execution.

Common situations: Readonly production connections; restricted ACL accounts; network transitions mid-action.

Related errors


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