# X_ROLE_REDEFINED

## Means

two modules define the same role differently

## Typical cause

one role name declared twice with different grants — a merged feature branch, or a role copied into a second module. Whichever module imported last would otherwise decide what the role can do, and the losing definition is still on disk for the next reader to trust. Both declaration sites are named, because which two is the only thing the author does not already know

## Fix

`x policy list --json` — then keep ONE definition of the role `cause` names: rename the second, or fold its grants into the first

[Policy and authz](/error-codes#policy-and-authz)
