Issue
After updating to Pega Platform™ '25, a report definition that previously exported successfully but time out or fail during Excel export. PEGA0167 alerts indicate that unoptimized properties are being read from the BLOB (binary large object) through UDFs (user-defined functions).
Symptoms and Impact
• Browser or generic administrator error during export.
• The report renders on-screen, but the export request times out.
• PEGA0167 alerts appear in PDC (Pega Diagnostic Center) on each execution.
• PDC records excessive memory use or query duration (for example, 59 GB and more than five minutes for about 13,000 rows).
• The issue was not present on the previous platform release
Steps to reproduce
- Run a report definition containing properties that are not exposed as database columns and are read from the BLOB through UDFs such as pr_read_decimal_from_stream or pr_read_from_stream.
- Select using filters that return several thousand rows. Observe that the on-screen report renders but the export times out or fails.
Root Cause
Report definitions created before Pega Platform '25 rely on UDFs (such as pr_read_decimal_from_stream) to read data from BLOBs.
Pega Platform '25 withdrew UDF support in staging and production environments (production levels 4 and 5); UDFs were deprecated in Pega Platform 8.6 and are expected to stop operating in those environments in Pega Infinity '26.
When report properties are not exposed as database columns, UDFs read them from the BLOB for every row, causing unsupported and severely degraded processing.
In the confirmed case, two decimal properties were read through pr_read_decimal_from_stream without column population, which caused the failure.
Additional report design issues increased the impact:
- More than the recommended 5–10 columns or 4 joins.
- Maximum export rows above 10,000.
- Filter parameters without Use null if empty, allowing full-dataset scans when blank.
- Excessive per-row timezone conversion functions.
Solution
Expose each affected property as a database column and populate it so the report reads mapped columns instead of performing per-row BLOB reads. This removes the UDF dependency and aligns the report with Platform '25 support requirements.
Steps:
- Identify UDF-dependent properties by reviewing report-rule warnings, Optimize Schema suggestions, and PEGA0167 alert details in PDC.
- Under Configure > System > Database > Column Population Jobs, create and run a job for each affected property during a maintenance window. See Identifying data properties reliant on UDFs.
- Re-run the report. Confirm that PEGA0167 alerts stop and Excel export succeeds.
- Reduce columns to those required, keep export rows below 10,000, select Use null if empty for filter parameters, limit joins to 4 where possible, and split broad reports into focused reports when needed.
References
Identifying and removing UDF dependencies
Design principles for reporting
Report definition best practices
Best practices for creating reports
Troubleshooting issues with exporting data to Excel from reports