Some js and css file not loading on the page

Issue

Some .js and .css files are missing from your AEM pages or from AEM's UI.

Cause

This could be caused by a few things:

  • The xpath query [1] used by the AEM Client Library Manager (HTMLLibraryManager) is using some index other than the /oak:index/nodetype index.
  • The nodetype index is failing to get updated or is corrupted.
  • The clientlibs-service user's permissions are missing.

[1]

/jcr:root//element(*, cq:ClientLibraryFolder)

Resolution

I. Check the service user permissions

Review this article in case the clientlibs-service user permissions are missing.

II. Check that the query is getting correct results

  1. Go to http://aem-host:port/crx/de/index.jsp and log in as admin.

  2. Go to Tools => Query.

  3. In the bottom Query box, enter this query:

    /jcr:root//element(*, cq:ClientLibraryFolder)
  4. Validate whether or not your missing client library is in the results.  If it there then contact AEM Customer Care to get help with further investigation.  Otherwise continue to the next step.

  5. If you found that the results excluded the missing client library then go to http://aem-host:port/libs/granite/operations/content/diagnosis/tool.html/granite:queryperformance.

  6. Enter the query again and click "Explain".

  7. The output shows you which index is used to execute the query.  If the index listed is not the "nodetype" index then something is wrong.

  8. You would need to debug what is causing a different index to return a lower cost estimation for the query.  Refer to this article for how to enable debug logging for query analysis.

  9. If the correct index is picked but fails to return the correct result then it is corrupted.  You will need to reindex the nodetype index.

  10. Follow the steps in this article to reindex the index asynchronously.