{"record":{"id":"5b789edb2f39a3d5","repo":"qishibo/AnotherRedisDesktopManager","slug":"exists-error-e-message","errorCode":null,"errorMessage":"Exists Error: ${e.message}","messagePattern":"Exists Error: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/components/KeyDetail.vue","lineNumber":103,"sourceCode":"      // type not support, such as bf\n\n      this.$message.error(this.$t('message.key_type_not_support'));\n      return '';\n    },\n    refreshContent() {\n      this.client.exists(this.redisKey).then((reply) => {\n        if (reply == 0) {\n          // clear interval if auto refresh opened\n          // this.$refs.keyHeader.removeInterval();\n          return this.$message.error({\n            message: this.$t('message.key_not_exists'),\n            duration: 1000,\n          });\n        }\n\n        this.$refs.keyContent && this.$refs.keyContent.initShow();\n      }).catch((e) => {\n        this.$message.error(`Exists Error: ${e.message}`);\n      });\n    },\n    dumpCommand() {\n      this.$refs.keyContent && this.$refs.keyContent.dumpCommand();\n    },\n  },\n};\n</script>\n\n<style type=\"text/css\">\n  .key-tab-container {\n    /*padding-left: 5px;*/\n  }\n  .key-header-info {\n    margin-top: 6px;\n  }\n  .key-content-container {\n    margin-top: 12px;","sourceCodeStart":85,"sourceCodeEnd":121,"githubUrl":"https://github.com/qishibo/AnotherRedisDesktopManager/blob/c149855106628babcdfb7675a8e7ba9434d2492a/src/components/KeyDetail.vue#L85-L121","documentation":"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.","triggerScenarios":"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.","commonSituations":"Laptop sleep/resume with the app open, Redis failover, server restarts during maintenance, restrictive ACL users on shared servers.","solutions":["Check the connection status and reconnect if needed, then refresh again","Verify the server is reachable and authenticated by running EXISTS key in the CLI tab","If ACL-managed, confirm the user has permission for the EXISTS command"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// only issue refresh commands on a healthy connection\nif (client.status !== 'ready') {\n  await reconnect(client);\n  return;\n}\nconst reply = await client.exists(key);","typeGuard":null,"tryCatchPattern":"// catch connection-level failures separately from normal flow\ntry {\n  const reply = await client.exists(redisKey);\n  if (reply === 0) handleMissingKey();\n} catch (e) {\n  if (/Connection|Socket|ECONNRESET|ENOTFOUND/.test(e.message)) {\n    markConnectionLost(); // prompt reconnect instead of toasting repeatedly\n  } else {\n    showError(`Exists Error: ${e.message}`);\n  }\n}","preventionTips":["Auto-refresh loops should pause when the connection status leaves 'ready'","Reconnect once before reporting, to absorb server restarts and failovers","Verify ACL users grant the commands your viewer issues (EXISTS included)"],"tags":["redis","ioredis","connection-lost","acl","ardm"],"backgroundTag":"redis-command-error","analyzedSha":"c149855106628babcdfb7675a8e7ba9434d2492a","analyzedAt":"2026-08-22T09:06:28.613Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}