A permission is set and still does not work

Errors & Fixes Reviewed September 6, 2026 2 min read

You granted the node, the plugin shows it, and the player still cannot use the command. Permissions have more moving parts than they look like they do, and these five cover almost every case.

The five causes

  1. They are op, or you are

    Operators bypass permission checks in most plugins, which means a negated permission does nothing to them. If you are testing on yourself and you have op, you are not testing permissions at all.

  2. A negative node is winning

    Most permissions plugins let you deny a node as well as grant it, and a denial in an inherited group beats a grant further down. Check the whole inheritance chain, not just the group you edited.

  3. The context is wrong

    Per-world and per-server contexts mean a node can be granted in a place the player is not. This is the one that looks completely correct in the interface.

  4. The plugin caches permissions

    Some plugins read a player's permissions once on join. A node granted while they are online does nothing until they reconnect.

  5. The node is not the one you think

    essentials.home and essentials.homes are different, and a wildcard may not cover a subcommand. Copy the node from the documentation rather than typing it from memory.

Fast checks

CheckTells you
/lp user <name> permission check <node>Whether the plugin thinks they have it, and why
Deop yourself and retryWhether op was masking the real answer
Have them reconnectWhether the plugin was caching
Test in the world it should apply toWhether context is the problem
Wildcards are how servers get given away

Granting * or a broad plugin.* to a trusted group hands out every command that plugin will ever add, including ones from future updates you have not read about. It also usually includes the administrative commands. Grant nodes individually; it is more typing once and less regret later.

Test as a real player, not with a check command

A check command tells you what the permissions plugin believes. Logging in on a second account and running the command tells you what actually happens, which is occasionally different and always more convincing.

How to confirm it worked

A test account in the intended group uses the command in the intended world, and cannot use it anywhere it should not.