KB-1828 Interface in /design loads with "Cannot interpret context for UI expression. Reason: Bindings" error

Symptoms

An interface loads in /design with the following error:

One or both of the following errors are also present in the application server log:

ERROR com.appiancorp.sail.BindingsEncryptionHelper - Caught context exception: java.io.IOException: Max decompression size reached!
....
ERROR com.appiancorp.rest.shared.AppianExceptionMapper - Internal Server Error on REST API invocation.
com.appiancorp.exceptions.LocalizedAppianRuntimeException$LocalizedAppianException: Cannot interpret context for UI expression. Reason: Bindings
ERROR com.appiancorp.sail.BindingsEncryptionHelper - Caught context exception: java.io.IOException: Max decompression size reached!
....
ERROR com.appiancorp.sail.StatefulUiStateWithStatelessFailover - Unable to deserialize bindings using Stateful UI State...reverting to Stateless
com.appiancorp.suiteapi.common.exceptions.AppianException: Cannot interpret context for UI expression. Reason: Bindings (APNX-1-4215-002)

Cause

The context size is too large. The context size refers to the amount of data stored in load() variables in the interface. For security reasons, there is a 200MB limit to the uncompressed context a load() variable can hold.

Action

Make changes to the interface SAIL code (or to the expression rules it uses) to reduce the interface context size. This requires reducing the amount of data stored in load() variables.

In the future, consider SAIL performance when designing expression rules and interfaces.

Workaround

It may not be possible to open and edit the interface object directly due to the error itself. If this is the case, it may be necessary to use one of the following workarounds to make changes to the interface:

Workaround 1

Prevent expression rules that are returning a large number of data from evaluating within the interface. This can be done by commenting out the expression rules' content within Appian expression rule designer.

  1. Temporarily comment out the expression rules that are returning a large number of data in Appian expression rule designer.
  2. Make changes to the interface to reduce the context size.
  3. Uncomment the expression rules in the Appian expression rule designer.

Workaround 2

If the interface exists in another environment not experiencing this issue, make changes to the interface in the working environment and import it to the affected environment.

  1. Make changes to the interface to reduce the context size in the working environment.
  2. Add the interface to a patch in the working environment.
  3. Export the patch.
  4. Import that patch into the environment experiencing the issue.

Affected Versions

This article applies to Appian 17.1 and later.

Last Reviewed: January 2019

Related
Recommended