KB-1411 Memory threshold reached during output conversion

Symptoms

The following error is seen in the application server log:

Caused by: com.appiancorp.suiteapi.common.exceptions.AppianRuntimeException: com.appiancorp.suiteapi.common.exceptions.AppianException: Memory threshold reached during output conversion (rule: [RULE], type: [DT], threshold: [1,048,576 bytes], objects successfully converted: [# OF CONVERTED OBJECTS]) (APNX-1-4164-024).

Cause

This error is thrown when a query rule is pulling in more data than the default 1MB limit. The 1MB configurable limit for the amount of data a query rule can retrieve from the database is defined in custom.properties

#####################
#### Query Rules ####
#####################
## The amount of memory in bytes that will be consumed in the application server
## for a single query before the query is halted. Default is 1 MB.
#conf.data.query.memory.limit=1048576

This cap is included in the product in order to avoid the application server from running out of memory (heap). Changing this limit is not recommended because it can increase memory usage introducing performance issues.

Changing this limit is not possible in Appian Cloud. Please review this documentation for more information: Updating property files in Appian Cloud.

Action

Whenever this error is thrown, consider redesigning the search logic. Most of the times, developers use a big CDT even though they only need some of the fields in that CDT for the search. The larger the amount of data and number of columns to retrieve the bigger the chances to reach this memory limit. Additionally, try using the paging parameter to return less data or return data in batches.

Refer to the following documentation:

Affected Versions

This article applies to all versions of Appian.

Last Reviewed: June 2020

Related
Recommended