{
  "schema_version": 2,
  "id": "develop/reference/errors/common/noperm",
  "title": "NOPERM error",
  "url": "https://redis.io/docs/latest/develop/reference/errors/common/noperm/",
  "summary": "The user is authenticated but isn't allowed to run the command or use the key.",
  "tags": [
    "docs",
    "develop",
    "stack",
    "oss",
    "rs",
    "rc",
    "oss",
    "kubernetes",
    "clients"
  ],
  "last_updated": "2026-11-02T15:10:28+01:00",
  "page_type": "content",
  "content_hash": "64126c330b16c8453ab9465f1b83d63a3f6628a19abd9b199521bb5ce080a0d2",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "Redis returns this error when you're authenticated, but your user's access control list (ACL) rules don't allow what you asked for. The message says what was refused, a command or a key:\n\n[code example]\n\nIn redis-py, this error is `NoPermissionError`, followed by the message without the `NOPERM` prefix."
    },
    {
      "id": "example",
      "title": "Example",
      "role": "example",
      "text": "The user `app` can only run `GET`, and only on keys that start with `allowed:`:\n\n[code example]"
    },
    {
      "id": "how-to-fix-it",
      "title": "How to fix it",
      "role": "content",
      "text": "1. Find out what was refused. As an administrator, run [`ACL LOG`](https://redis.io/docs/latest/commands/acl-log). Each entry shows the user, the `reason`, such as `command` or `key`, and the `object`, which is the command or key name.\n1. Check which user your app is connected as with [`ACL WHOAMI`](https://redis.io/docs/latest/commands/acl-whoami).\n1. Connect as a user that has the permission, or change the user's rules with [`ACL SETUSER`](https://redis.io/docs/latest/commands/acl-setuser). For example, `ACL SETUSER app +set` lets the user run `SET`, and `ACL SETUSER app ~other` lets it use the key `other`.\n\nSee [ACL rules](https://redis.io/docs/latest/operate/oss_and_stack/management/security/acl#acl-rules) and [Key permissions](https://redis.io/docs/latest/operate/oss_and_stack/management/security/acl#key-permissions)."
    }
  ],
  "examples": [
    {
      "id": "overview-ex0",
      "language": "plaintext",
      "code": "NOPERM User app has no permissions to run the 'set' command\nNOPERM No permissions to access a key",
      "section_id": "overview"
    },
    {
      "id": "example-ex0",
      "language": "plaintext",
      "code": "> ACL SETUSER app on ><password> +get ~allowed:*\nOK\n> AUTH app <password>\nOK\n> SET allowed:1 \"x\"\n(error) NOPERM User app has no permissions to run the 'set' command\n> GET other\n(error) NOPERM No permissions to access a key",
      "section_id": "example"
    }
  ]
}
