ArgoCD › RBAC

How do you troubleshoot 'permission denied' errors in ArgoCD?

Advanced

Answer

Check the user's group claims (via the token/SSO), confirm matching `g` bindings and `p` rules in policy.csv, verify the object scope (project/app) matches, and remember deny-by-default. The scopes setting must reference the correct claim (e.g., groups). Enabling debug logging on the API server shows which policy decision was made.
Real-world example A user denied sync is fixed by correcting the scopes setting so their SSO group claim is read and mapped to a role.

Common follow-ups: What does the scopes setting control? | Why check the object scope?