Adjusting Partition-Limit in RML Runtime Configuration from Ambience/Repertoire 202x

Overview

Instructions for modifying the partition-limit setting in the RML runtime configuration to address tree depth limitations in report generation when the following error is encountered:

ERROR c.e.r.l.StreamedSectionRenderer - Render failure: java.lang.RuntimeException: Body Partition depth limit 10 exceeded

Cause

The default partition limit has been set to 10 to prevent stack overflow errors caused by rendering rml templates to paginated PDF/XLSX outputs with the following design layout (potential deep recursion errors):

  • Over 10 levels of nested sub report elements
  • Over 10 group headers/footers
  • A combination of both

Steps to Adjust Partition-Limit

Add the following configuration in the application.conf file, located in the /etc folder of Ambience 202x directory:

elixir.rml.partition-limit = 100

This configuration sets a limit on how many times a report component can be partitioned across pages during pagination. It serves as a safeguard by preventing repeated pagination attempts from escalating into stack overflow errors.

The value can be increased further (e.g., 20, 50, 2000 or higher) depending on report size and complexity. For example, if a sub-report is expected to be partitioned across approximately 2000 pages, the partition limit should be set to 2000.

Please restart the Ambience/Repertoire server to apply the changes.


Note:

  • The default partition-limit value is 10 , sufficient for most cases.
  • For very large reports (e.g., thousands of pages), the limit must be set high enough to allow the expected level of pagination.
  • Adjusting the partition limit does not resolve layout constraints. If pagination issues persist, review the report template design to ensure layout rules are compatible with deep pagination.