Missing Authorization Object After Transaction Change
This happens when a transaction's authorization check requirements change (new AUTHORITY-CHECK added by a support package, a note-based correction, or custom development) but the existing PFCG role was never regenerated against the updated SU24 proposal. The object exists in the check, SU24 knows about it, but the role's authorization tree was built before the change and nobody re-ran the comparison.
Covers the mismatch between a transaction's live authorization checks and what is actually generated into a PFCG role, usually surfacing after an upgrade, support package, or custom code change. Walks through the SU24 and PFCG mechanics that cause an object to silently drop out of a role, the check sequence to isolate it, and why manually patching the profile only delays the next failure.
Published 16 Sept 2026· 1,095 words
The business symptom
A user who has run a transaction for months suddenly gets a short dump or an authorization error screen after a system upgrade, a support package application, or the rollout of a custom transaction variant. The business description is usually something like 'this worked yesterday, nothing changed on my side' or 'it broke after the weekend patch'. Sometimes it is reported by a whole team at once, right after a transport of a role change that was supposed to be unrelated. Occasionally the complaint is narrower: one specific field value or sub-screen within the transaction fails while the rest of the transaction works, which points at a single authorization object rather than the whole role being broken. Helpdesk usually escalates it as 'role is missing an authorization' once someone has run an authorization trace, but nobody yet knows why the object is missing.
The configuration behind it
- SU24 proposal changed after the role was last generated: a support package, a correction, or a developer adding a new AUTHORITY-CHECK statement updates the check indicator for the transaction, but PFCG does not automatically re-pull existing roles. The role keeps the authorization tree it had at last generation until someone explicitly compares it against the new proposal.
- SU25 was never run, or only partially run, after an upgrade or support package. If the initial comparison step was skipped, the new default check objects for existing transactions never even land in the customer tables, so there is nothing for PFCG to inherit even if the role is regenerated.
- The object was manually deleted from the role during a cleanup or an org-level restriction exercise, and marked as manually maintained. Manually maintained objects are excluded from the automatic merge on the next generation, so if someone strips values instead of restricting them, the object does not come back.
- A custom transaction was copied from a standard one but the custom AUTHORITY-CHECK added to the underlying program was never registered against it in SU24, so the object is missing from the proposal entirely, not just from the role.
- Composite or derived role structure: the object was added at the parent role level but the derived role's organizational values were never distributed, or the object was added directly to one single role's profile, bypassing the menu-driven generation that other roles sharing the same transaction rely on.
What to check
- Run the authorization trace at the moment of failure (transaction ST01 classic trace or the newer authorization trace transaction) to capture exactly which object, field, and value combination was rejected.
- Check SU24 for the transaction to see whether the object appears in the check indicator list and whether its status is set to check, check/maintain, or no check.
- Open the role in PFCG, go to the Authorizations tab, switch to expert mode, and compare the current authorization tree against the SU24 proposal using the read-old-status-and-merge option.
- Look at SU25 history to confirm whether the initial comparison run after the last upgrade or support package was actually completed for this transaction.
- Check whether the object in the role is flagged as manually maintained, which explains why automatic merges skip it.
- If the transaction is custom or a copy, check the underlying program for the AUTHORITY-CHECK statement and confirm it was registered in SU24 rather than left unassigned.
How to prove it in the data
Pull the trace log for the exact user, transaction, and timestamp of the failure and extract the object, field, and value that was checked and rejected. Cross-reference that object against the SU24 proposal for the transaction to confirm whether it is present there at all. Then compare the role's current authorization tree against that same SU24 proposal; a gap between the two, with the object present in SU24 but absent or manually flagged in the role, is the evidence that closes the root-cause question.
Resolution path
If SU24 already has the correct proposal but the role is stale, this is a role data fix: open the role in PFCG expert mode, run the comparison against SU24, add the missing object with the correct field values, and regenerate the profile. If the role is transported between systems this change still needs a transport, but it is a role transport, not a customizing change. If SU24 itself is missing the object because SU25 was skipped or the object was never registered for a custom transaction, that is a configuration gap and must be fixed at the SU24 level first, then propagated to roles, and this SU24 change does travel through a customizing transport request. If the object was deliberately deleted and marked manual, decide whether the restriction was intentional; if not, remove the manual flag and let the merge repopulate it, then re-apply any org-value restriction properly through derived roles rather than by stripping the object.
The fix people try first (and why it fails)
The common reflex is to open the role in PFCG expert mode and manually add the object with the values suggested by the SU53 or trace output, save, generate, and close the ticket. This clears the immediate error but does not touch SU24, so the underlying proposal is still wrong. The next time the role is regenerated from the menu, or the next time someone runs a mass comparison across roles, the manually added object can be treated as inconsistent with the proposal and either flagged or dropped again, reopening the same ticket weeks later under a different user's name.
Whose problem this is
Security or GRC administration owns SU24 maintenance and role generation and is the party who runs the PFCG comparison and closes the immediate access issue. The functional or development team that introduced the transaction change owns notifying security when a new authorization check is added, since security has no visibility into new AUTHORITY-CHECK statements without that handover. The handover note should record the transaction, the missing object, whether SU25 was run for the relevant release, and whether the fix was applied at SU24 level, role level, or both.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-functional-issues/authorisation-object-missing-from-the-role-after-a-transaction-changeERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.