Component move fails in Adobe Experience Manager when large containers trigger split JSON responses
This article explains why moving components within a page in Adobe Experience Manager (AEM) fail when the page contains a large number of content nodes, and provides a temporary workaround.
Description description
When using AEM, moving a component within a page that contains a large number of content nodes don’t work as expected. This issue occurs when the number of nodes in a container exceeds the configured limit for JSON results in the Apache Sling GET Servlet (DefaultGetServlet). By default, this limit is set to 1000 nodes. When the limit is exceeded, a request to the container’s .infinity.json endpoint returns an HTTP 300 response with references to multiple split JSON files instead of a single JSON response. The AEM authoring UI doesn’t handle this split response correctly, causing the component move operation to fail silently.
Environment
- Adobe Experience Manager (all versions)
Symptoms
- Attempting to move a component within a page containing a large number of nodes has no effect.
- The request to
/container.infinity.jsonreturns an HTTP 300 response with references to multiple split JSON files, such as: /content/.../jcr:content/root/container.2.json/content/.../jcr:content/root/container.1.json/content/.../jcr:content/root/container.0.json
Cause
The DefaultGetServlet enforces a limit on the number of nodes returned in a single JSON response. When this limit is exceeded, the servlet returns a split response, which isn’t currently handled by the AEM authoring workflow during component move operations.
Resolution resolution
Follow the steps below to resolve the issue:
- Log in to the AEM Web Console Configuration at
/system/console/configMgr. - Locate the configuration for Apache Sling
GETServlet (org.apache.sling.servlets.get.DefaultGetServlet). - Increase the value of
json.maximumresultsto a number higher than the total nodes in your largest container (For example: increase from 1000 to 2000). - Save the configuration.
- Retry the component move operation to verify if it now completes successfully.
- Monitor future AEM Sites release notes for updates regarding a permanent fix for this issue.