Expand my Community achievements bar.

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