Role Changes Not Reflected Until Relogon
A role or authorization change was saved and even generated in PFCG, but the user still gets the old behavior in their active session because the authorization buffer in that session was built at logon and is not re-read mid-session. It normally clears on the next logoff and logon. If it persists after relogon, the real cause is a missed user master comparison, not the buffer.
Covers the recurring helpdesk pattern where a newly assigned or newly generated role appears correct in PFCG but the end user reports no change in what they can do. Distinguishes the expected buffer-refresh behavior from the genuine configuration miss, which is an outstanding user master comparison, and gives the check sequence to tell them apart before escalating.
Published 16 Sept 2026· 1,208 words
The business symptom
Helpdesk ticket usually reads something like: security added the role this morning, PFCG shows it assigned, but the user still cannot see the new tile or still gets the authorization error on the same transaction they were promised access to an hour ago. Sometimes the opposite happens, a role was removed because someone left a project, and the user can still execute the transaction that was supposed to be locked down. The business frames it as the role change did not work or the fix did not take. It often comes back a second time from the same user a week later after another role update, because nobody explained that a session boundary is involved, so every change looks unreliable to them even when the configuration side is fine.
The configuration behind it
- Expected buffer behavior: the user authorization buffer is built once at logon from the user master record and is not automatically refreshed during an active session; any role assignment or removal made after logon simply will not be visible until the next logon.
- Missed user master comparison: the role or composite role was changed and regenerated in PFCG but the mass or individual user comparison was never run, so the user master record itself was never updated with the new profile, meaning even a fresh logon will not pick it up.
- Composite role not compared after a child single role change: single role was regenerated but the composite role wrapping it shows an outstanding comparison indicator that gets missed because attention stayed on the single role.
- CUA landscape gap: role was distributed from the central system but the user compare step in the child system was never triggered, so the local user master in that client is still stale regardless of what the central system shows.
- Derived role parent-child desync: org level values changed on the parent role, child roles were not regenerated, so the profile in the buffer after logon still carries old org values.
- Scheduled comparison job not running or failing silently: sites that rely on a background job to run mass user comparison periodically get a wide gap between role change and effect if that job is disabled, deleted, or erroring out.
- SSO or portal session caching a separate token from the ABAP session, so even a correct backend logon does not refresh what the frontend session presents to the user.
What to check
- PFCG on the role in question: open the user assignment tab and look for the user comparison indicator; red or yellow means the user master was never updated with this role version.
- SU01 on the affected user: check the profile list under the authorization data tab to see whether the expected profile is actually present in the user master, independent of what PFCG shows on the role side.
- SU56 for the user, ideally with the user logged on: this shows what is actually sitting in the authorization buffer right now, which is the ground truth for what checks will pass or fail in the current session.
- SU53 or an authorization trace via ST01 or the newer trace transaction, taken at the moment of the failing transaction, to confirm which object and value are actually missing rather than assuming it is the new role.
- If a CUA landscape is in play, check the distribution log and confirm the child system received and applied the role, then check user compare status locally in that child system client.
- Check whether a periodic user master comparison job exists and is running successfully, since a silent failure there hides the same symptom across many users at once.
How to prove it in the data
Pull SU56 for the user while they are still complaining, compare the profile list shown there against the profile currently generated for the role in PFCG; a mismatch confirms the buffer or user master is stale rather than the role definition being wrong. Cross-check the user comparison status on the role's user assignment tab at the same timestamp. If several users on the same role show the identical gap, check the mass comparison job log for failures around the date the role was last changed.
Resolution path
If the buffer is simply stale and the user master record is correct, the fix is a logoff and logon; nothing needs to be transported or changed. If the user master comparison was never run, running the comparison, either targeted at the single user or as a mass comparison covering all users of the affected role, is a data action performed in the production system directly and does not need a transport by itself. If the root cause is a composite role whose comparison indicator was overlooked, compare the composite role as well, since comparing only the single role does not always propagate. If the gap is in a CUA child system, re-trigger distribution and run the comparison locally in that client; this is still a data step, not a transport, but it depends on the RFC connection between central and child systems being healthy. If the underlying issue is a config problem, such as a derived role never regenerated after its parent's org values changed, that regeneration is also a data-side action inside PFCG, but if the org level structure itself was wrong, correcting the org level value definition is a configuration change that does need to move through the transport landscape in the normal sequence.
The fix people try first (and why it fails)
The habitual response is telling the user to log out and log back in every time, treating it as the permanent fix rather than checking whether the user master comparison ever ran. This works once by accident when the buffer really was the only issue, then fails the next time the true cause is a missed comparison, making the whole process look unreliable. A worse variant is granting the missing authorization object directly to the user through SU01 extras to make the ticket close faster; this bypasses the role entirely, creates an authorization the role model does not track, and shows up later as an audit finding with nobody able to explain why the user has it outside any role.
Whose problem this is
Owned by the security or GRC role administration team, since running the user master comparison and confirming role generation status sits with them. Basis is pulled in only when the periodic comparison job itself is broken or when a CUA RFC connection is down. The handover note should carry the user ID, role and composite role names, the timestamp the role was last changed, the comparison indicator status at time of ticket, and whether the landscape uses CUA.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-functional-issues/role-not-taking-effect-until-the-user-logs-offERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.