Expand my Community achievements bar.

Submissions are now open for the 2026 Adobe Experience Maker Awards.
SOLVED

AEM SPA OOTB model.json not fetching the locked components in the response

Avatar

Level 3

I have had a SPA website running for the last 4 years. Recently, I encountered an issue where the homepage—or any page with child pages—turns blank. After debugging, I found that the SPA's out-of-the-box model.json does not fetch the responsive_grid nodes or the components inside them.

To investigate, I copied the homepage and made it independent (i.e., with no child pages), and then tested the model.json response. In this case, it provided the expected output, including both locked and unlocked components. The issue occurs 2 publishers out of 6.

I have tried the following steps, but none have resolved the issue. 

 

  • Restarted the com.adobe.cq.core.wcm.components.core and org.apache.sling.models.jacksonexporter bundles

  • Restarted the server

  • Upgraded to core.wcm.components.all-2.29.0, as I was previously using an older version (2.15.x)

  • Took the /conf and /content from the working instance and deployed them to the impacted instance

  • Added dummy properties in the template and content to refresh the Sling Model exporter

  • Verified the cq:template and sling:resourceType properties

  • Found no relevant traces in the logs

 

Initially, this issue was reproduced on the SIT author instance and was resolved by rebooting the server and restarting AEM. It was also reproduced on my local environment, and restarting the server/machine fixed it there as well. However, the same approach did not work on the publisher instances.

I'm using AEM 6.5 with Service Pack 22 (on-premise). I suspect this could be an issue with SP22, but I don’t have concrete proof yet. below is the template structure i'm using in my homepage. I would appreciate any insights or suggestions.

vijayselvas1_0-1759326115924.png

 

1 Accepted Solution

Avatar

Correct answer by
Level 10

hi @vijayselvas1,

Here are some ideas for troubleshooting:

  • On a working vs impacted publisher, open the same page.model.json and confirm that :items exists and contains a responsivegrid with columnClassNames and nested components, and whether :children appears only on the impacted nodes when child pages are present.
  • Search for any custom Sling Filter mapped to .*.model.json (common pattern for post-processing model JSON) and temporarily disable it to see if the responsive_grid and components reappear in the payload.
  • Confirm the page’s sling:resourceType points to the Core Page component used for SPA and that no /apps overlay changes exporter behavior on some nodes, especially around Container/Responsive Grid delegation and JSON properties
  • (SPA policies) Check the SPA root/page policies under /conf for isRoot and structureDepth and ensure they match across publishers, as these settings control :children in the root model and can change the JSON shape with child pages. see here and here.
  • Align the aem-spa-page-model-manager version across all publishers, since older versions have known publish-only model.json fetch issues that can surface as blank pages: 

View solution in original post

2 Replies

Avatar

Correct answer by
Level 10

hi @vijayselvas1,

Here are some ideas for troubleshooting:

  • On a working vs impacted publisher, open the same page.model.json and confirm that :items exists and contains a responsivegrid with columnClassNames and nested components, and whether :children appears only on the impacted nodes when child pages are present.
  • Search for any custom Sling Filter mapped to .*.model.json (common pattern for post-processing model JSON) and temporarily disable it to see if the responsive_grid and components reappear in the payload.
  • Confirm the page’s sling:resourceType points to the Core Page component used for SPA and that no /apps overlay changes exporter behavior on some nodes, especially around Container/Responsive Grid delegation and JSON properties
  • (SPA policies) Check the SPA root/page policies under /conf for isRoot and structureDepth and ensure they match across publishers, as these settings control :children in the root model and can change the JSON shape with child pages. see here and here.
  • Align the aem-spa-page-model-manager version across all publishers, since older versions have known publish-only model.json fetch issues that can surface as blank pages: 

Avatar

Level 3

Dear @giuseppebag ,

 

I checked your recommendations, and the aem-spa-page-model-manager caught my eye. I was using version 1.4.0 (frontend) across all environments, so I suspected that could be causing the inconsistency. I upgraded it to 1.4.4, and it fixed the issue.

Man, you're a lifesaver!