Expand my Community achievements bar.

Radically easy to access on brand approved content for distribution and omnichannel performant delivery. AEM Assets Content Hub and Dynamic Media with OpenAPI capabilities is now GA.

Uncaught ReferenceError: CQ is not defined

Avatar

Level 2

Hi there,

I am upgraded from AEM 6.0 to  AEM 6.2. There was some changes required and I have done those. Everything was fine. Recently I have upgraded CFP8. After that I am getting Uncaught ReferenceError: CQ is not defined in browser console in every page. I am getting this error in both author and publish instance. Here is the QA publish server of my application: Cheap Rental Cars and Car Rental Deals Worldwide - Fox Rent A Car.

Can you please help me to resolve this issue?

Here is my current instance version:

Adobe Experience Manager, Version 6.2.0.SP1-CFP8

Here is the browser console error:

Uncaught ReferenceError: CQ is not defined

     at main.js:97

20 Replies

Avatar

Employee

Make sure cq.widgets is added as dependency in your client lib.

dependenciesString[]cq.widgets

Avatar

Level 2

This is the path of my client libs folder this my my client lib folder: /etc/designs/dotcom/clientlibs_base . And I have added the dependencies. Still issue is there.

Avatar

Employee

Error is reported from main.js (loaded on top of the page)

And clientlibs_base.js is loaded at the end of the page. You might need to look into ordering of the client libraries in which they are included in the page.

Avatar

Level 2

I have compared 6.0 vs 6.2. Order is same. It was working in 6.2 before installing CFP8.

Avatar

Level 10

I ahve checked with internal ppl to see if this is a known issue.

Avatar

Level 10

By the way - nice site. If you ever want to contribute some community code that help the AEM DEV community - let us know.

Avatar

Level 2

I need to resolve this issue. This issue is blocking my next release. If you can help me on this it will be great. Thank you.

Yes, I shall be glad to contribute some community code. Thank for the complement.

Avatar

Level 10

I have never seen this issue nor do we have any webinars or task-based doc that i can point you to in order to resolve this.

However - there is a related thread here: cq5 - Uncaught ReferenceError: CQ is not defined - Stack Overflow

If this does not resolve it and you do not hear back from a community member - i strongly recommend opening a ticket as there may be a bug somewhere.

Avatar

Level 2

I have tried this solution already. Thank you for your suggestion. I am going to file a ticket in Day Care as I have very limited time to resolve this. Thanks again.

Avatar

Level 1

Hi maheraj

i ran into same issue after installing CFP9 package on 6.2SP1 instance both author and  publish instances. have you found solution for issue. i am struck with issue.

Thanks,

Venkat

Avatar

Level 2

Hi venc49793627,

No I have not found the solution. I have created one day care ticket. But Adobe was not able to find the reason as well. Any way I shall let you know if I can figure out this. Please let me know if you find anything as well. Thanks

Avatar

Level 1

Hi maheraj

issue seems to be with new image component being added after CFP8 package. new clientlibs folder under /libs/wcm/foundation/components/images. to fix our issue, i commented image.js in js.txt file. now CQ error is gone. but i do noticed form submission not working on IOS 11 devices. trying to see what causing issue with IOS11.

let me know if this helps.

Avatar

Level 1

We have the same issue in our environment since installing CFP9.  I just created a daycare ticket also.

Avatar

Level 4

To fix this, you can add cq.shared dependency on "/etc/clientlibs/foundation/main" and it will work fine

Avatar

Level 1

This Solution worked on, 6.4 instance, however this issues was with dispatcher which is resolve now, but at the first shot adding dependencies 'CQ.Shared ' worked for me on 6.4 Instance

Avatar

Level 1

Can you please give your inputs on this issue. this is issue got when using below code as page component.I am getting below " "use" is not defined" error during the AEM upgrade from 6.2 to 6.4.

--> <div data-sly-use.data="company-linkpage.js" id="company-links"> This is the div using the  .js file 

Below is the Complete Error:

--------------------------------------

ReferenceError: "use" is not defined       

Cannot serve request to /content/project/en/content/Tools_and_Resources.html in /apps/project/company-linkpage.js

Exception: <eval>:3 ReferenceError: "use" is not defined  at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:57)  at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:319)  at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:291)  at jdk.nashorn.internal.objects.Global.__noSuchProperty__(Global.java:1441)  at jdk.nashorn.internal.scripts.Script$\^eval\_.:program(<eval>:3)  at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:637)  at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494)  at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393)  at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:421)  at jdk.nashorn.api.scripting.NashornScriptEngine.access$300(NashornScriptEngine.java:73)  at jdk.nashorn.api.scripting.NashornScriptEngine$3.eval(NashornScriptEngine.java:514)  at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:386)    at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184)    at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:4 91)  at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:552)  at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponen

----------------------------------------------------------------------------------------- --------

Below is the code for company-linkpage.js :

"use strict";

use(['/apps/project/components/structure/basepage/userProfile.js'], function (userProfile) {

    var ret = {

        image: null,

        favoriteUrl: currentPage.path + '.html',

        userCanEdit: false,

        userCanEditTeam: false,

        isAnonymous: userProfile.isAnonymous()

    },

        image = currentNode.hasNode('image') ? currentNode.getNode('image') : null;

    ret.isFavorite = userProfile.isFavorite(ret.favoriteUrl);

    if (image) {

        ret.image = image.hasProperty('fileReference') ? image.getProperty('fileReference') : null;

    }

    if (!ret.image) {

        try {

            var res = image.hasNode("file") ? image.getNode("file") : null;

            ret.image = res.getPath();

            ret.image = "background-image: url("+ ret.image + ");";

        } catch(err) {

            ret.image = "background-image: url(http://placehold.it/150x150?text=Placeholder);";

        }

    } else {

        ret.image = "background-image: url(" + ret.image + ");";

    }

    var roles = userProfile.getRoles().iterator();

    while (roles.hasNext()) {

        var role = roles.next();

        if (role.label.equalsIgnoreCase('Non-Sales Leaders')) {

            ret.userCanEdit = 'true';

        } else if (role.label.equalsIgnoreCase('Non-Sales Editor')) {

            ret.userCanEdit = 'true';

        } else if (role.label.equalsIgnoreCase('Team Leader')) {

            ret.userCanEditTeam = 'true';

        }

    }

    ret.isAnonymous = userProfile.isAnonymous();

    return ret;

});  

Hi Rushikesavareddy,

Did you get any solution to the mentioned issue "use is not defined" ?

Can this be corrected by adding any dependency as we resolved the "CQ is not defined" error by adding cq:widget as dependency?

Avatar

Level 1

Hi suhashankare,

What was the issue you had with the dispatcher?

Thanks in advance!

Avatar

Level 1

Hi,

I got the solution of the issue, just change the use js name and its reference, like in my case js name was caseStudy.js so I changed it to caseStudyJS.js and also its reference and it worked.

Avatar

Level 1

gauravm29742313 ' s solution worked for me, but I almost skipped over it because I didn't understand.

Make sure your js file does not match the same of the component folder it sits in.

for example, I changed:
.../blank-page/blank-page.js

to

.../blank-page/blankPage.js