qishibo/AnotherRedisDesktopManager · error

Exists Error: ${e.message}

Error message

Exists Error: ${e.message}

What it means

Catch handler around client.exists() in refreshContent; it surfaces any ioredis-level failure of the EXISTS command with an 'Exists Error:' prefix. Unlike a reply of 0 (missing key), this means the command itself failed - typically a broken connection, a server that went away, or an ACL denying the command.

Source

Thrown at src/components/KeyDetail.vue:103

      // type not support, such as bf

      this.$message.error(this.$t('message.key_type_not_support'));
      return '';
    },
    refreshContent() {
      this.client.exists(this.redisKey).then((reply) => {
        if (reply == 0) {
          // clear interval if auto refresh opened
          // this.$refs.keyHeader.removeInterval();
          return this.$message.error({
            message: this.$t('message.key_not_exists'),
            duration: 1000,
          });
        }

        this.$refs.keyContent && this.$refs.keyContent.initShow();
      }).catch((e) => {
        this.$message.error(`Exists Error: ${e.message}`);
      });
    },
    dumpCommand() {
      this.$refs.keyContent && this.$refs.keyContent.dumpCommand();
    },
  },
};
</script>

<style type="text/css">
  .key-tab-container {
    /*padding-left: 5px;*/
  }
  .key-header-info {
    margin-top: 6px;
  }
  .key-content-container {
    margin-top: 12px;

View on GitHub (pinned to c149855106)

Solutions

  1. Check the connection status and reconnect if needed, then refresh again
  2. Verify the server is reachable and authenticated by running EXISTS key in the CLI tab
  3. If ACL-managed, confirm the user has permission for the EXISTS command
Defensive patterns

Strategy: try-catch

Validate before calling

// only issue refresh commands on a healthy connection
if (client.status !== 'ready') {
  await reconnect(client);
  return;
}
const reply = await client.exists(key);

Try / catch

// catch connection-level failures separately from normal flow
try {
  const reply = await client.exists(redisKey);
  if (reply === 0) handleMissingKey();
} catch (e) {
  if (/Connection|Socket|ECONNRESET|ENOTFOUND/.test(e.message)) {
    markConnectionLost(); // prompt reconnect instead of toasting repeatedly
  } else {
    showError(`Exists Error: ${e.message}`);
  }
}

Prevention

When it happens

Trigger: Connection dropped (server restart, network blip, idle timeout) exactly when refresh fires EXISTS; ACL user without read permission; ioredis status not 'ready' because auth is still failing.

Common situations: Laptop sleep/resume with the app open, Redis failover, server restarts during maintenance, restrictive ACL users on shared servers.

Related errors


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