Hi all,
We upgraded to 2026 R1 (26.101.0225) and started moving screens over to Modern UI. Since then, users whose role has View Only access to an analytical report can no longer run it. Same roles and same access rights as before, and these reports ran fine for them in Classic UI.
What we're seeing on an analytical report (RM screen) in Modern UI, by the role's access level on that report:
- View Only: the Run Report button is greyed out.
- Edit: Run Report can be clicked, but the report fails with "Object reference not set to an instance of an object."
- Insert: the report runs normally.
- Delete: runs (same as Insert).
The Request Profiler shows the Edit failure here:
PX.Data.Reports.ReportMaint.FillReportSettings()
PX.Data.Reports.ReportMaint.FillReport()
PX.Data.Reports.ReportMaint.runReport(PXAdapter)
What we've found so far:
- In Modern UI the report parameters page runs on ReportMaint with Report as the primary record, and it opens as a new unsaved (draft) record. In Classic, reports only had Granted/Revoked, but the report screens now show the full View Only / Edit / Insert / Delete scale in Access Rights by Screen.
- Our read is that the draft Report record only gets created when the user has Insert rights. At Edit it never gets created, Report.Current is null, and FillReportSettings errors out because it reads from that record without checking for null.
- Nothing at all is saved when the report runs. The SQL log showed no inserts, updates or deletes from the report screen, so Insert doesn't let users change anything. It just lets the report start.
We also inspected ReportMaint on our 25R2 dev instance (25.201.0213), and the same call chain shows in our 26R1 production trace. runReport calls ValidateReportParameters() and then FillReport(), which calls FillReportSettings() first. FillReportSettings() opens with var report = this.Report.Current; and immediately reads report.ViewPdf, with no null check on report. So when the draft Report row was never inserted, the first line after that throws the null reference.
Our workaround for now is setting each affected role to Insert on the analytical report screens. We've only tested analytical (RM) reports, so we don't know yet whether standard reports behave the same way.
Open Questions:
1. Is requiring Insert to run reports in Modern UI intended, or is this a known issue?
2. If it's intended, is there documentation on the access level reports need in Modern UI?
3. Is a fix planned so View Only users can run reports again, or at least get a proper access message instead of the null reference error?
Thanks everyone!