magento / magento2

Prior to making any Submission(s), you must sign an Adobe Contributor License Agreement, available here at: https://opensource.adobe.com/cla.html. All Submissions you make to Adobe Inc. and its affiliates, assigns and subsidiaries (collectively “Adobe”) are subject to the terms of the Adobe Contributor License Agreement.
http://www.magento.com
Open Software License 3.0
11.55k stars 9.32k forks source link

Click Admin Stores Configuration shows console errors in legacy-build.min.js file #39066

Closed kanidaya closed 4 weeks ago

kanidaya commented 2 months ago

Preconditions and environment

Steps to reproduce

1.click Store configuration 2.click any of the section from side bar 3.open the any one og section 4.it will not open an check the console

Expected result

Nothing happen. we can able collapse and open any section

Actual result

Can't able to open system configuration sections shows below console errors

Uncaught TypeError: ah.attachEvent is not a function at s (legacy-build.min.js:12:31254) at Function.e [as observe] (legacy-build.min.js:12:31133) at form.js:114:11 at Object.execCb (require.js:1696:33) at Module.check (require.js:883:51) at Module. (require.js:1139:34) at require.js:134:23 at require.js:1189:21 at each (require.js:59:31) at Module.emit (require.js:1188:17)Understand this error theme.js:629 Uncaught TypeError: $(...).filter(...).collapse is not a function at HTMLDivElement. (theme.js:629:12) at Function.each (jquery.js:383:35) at theme.js:626:7 at Object.execCb (require.js:1696:33) at Module.check (require.js:883:51) at Module. (require.js:1139:34) at require.js:134:23 at require.js:1189:21 at each (require.js:59:31) at Module.emit (require.js:1188:17)

Uncaught TypeError: ah.dispatchEvent is not a function
at r (legacy-build.min.js:12:32795)
at D (legacy-build.min.js:12:32626)
at HTMLDocument._methodized [as fire] (legacy-build.min.js:1:6441)
at d (legacy-build.min.js:12:34954)
at legacy-build.min.js:12:34408Understand this error

legacy-build.min.js:12 Uncaught TypeError: $(...).removeClassName is not a function at Object.applyCollapse (legacy-build.min.js:12:147567) at Object.toggleCollapse (legacy-build.min.js:12:148155) at HTMLAnchorElement.eventListener9tmbiETHAp (6c8471f696931ebcf4ba741ab4a76321ac03408b6b79a9af71a9e0f07aa8885b/:475:41) at element.onclick (6c8471f696931ebcf4ba741ab4a76321ac03408b6b79a9af71a9e0f07aa8885b/:486:52)Understand this error about:blank:1 Uncaught (in promise) Error: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was receivedUnderstand this error 6c8471f……71a9e0f07aa8885b/:1 Uncaught (in promise) Error: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was receivedUnderstand this error 2legacy-build.min.js:12 Uncaught TypeError: $(...).removeClassName is not a function at Object.applyCollapse (legacy-build.min.js:12:147567) at Object.toggleCollapse (legacy-build.min.js:12:148155) at HTMLAnchorElement.eventListenerIIMI4DNdRa (6c8471f696931ebcf4ba741ab4a76321ac03408b6b79a9af71a9e0f07aa8885b/:529:41) at element.onclick (6c8471f696931ebcf4ba741ab4a76321ac03408b6b79a9af71a9e0f07aa8885b/:540:52)

Screenshot 2024-08-20 085130

Additional information

No response

Release note

No response

Triage and priority

m2-assistant[bot] commented 2 months ago

Hi @kanidaya. Thank you for your report. To speed up processing of this issue, make sure that the issue is reproducible on the vanilla Magento instance following Steps to reproduce. To deploy vanilla Magento instance on our environment, Add a comment to the issue:

m2-assistant[bot] commented 2 months ago

Hi @engcom-Delta. Thank you for working on this issue. In order to make sure that issue has enough information and ready for development, please read and check the following instruction: :point_down:

engcom-Delta commented 2 months ago

Hi @kanidaya ,

Thanks for your reporting and collaboration. We have verified the issue in latest 2.4-develop instance and magento 2.4.7-p2, but we are unable to reproduce the issue. Kindly refer the screenshots.

Steps to reproduce

  1. Access admin
  2. Navigate to Stores>Settings>Configuration
  3. Observe user is able to access configuration. User is able to access all areas of configuration without interruption.

https://github.com/user-attachments/assets/f4bc2bcd-1eb4-4f7a-96eb-f1d7a44d3a43

Please let us know if any other steps are needed to be performed.

Thanks.

kanidaya commented 2 months ago

@engcom-Delta can you share test env url?

kanidaya commented 2 months ago

@engcom-Delta after click left side menu then click right section collabs its developer mode cause this issue

nikolaykravchenko commented 2 months ago

I have the same issue. It appears randomly on configuration admin page.

engcom-Delta commented 2 months ago

Hi @kanidaya ,

We have verified in our local, You can verify in 2.4-develop instance by calling @magento give me 2.4-develop instance. Please let us know if any other steps are needed to be performed.

Thanks.

magento-deployment-service[bot] commented 2 months ago

Hi @engcom-Delta. Thank you for your request. I'm working on Magento instance for you.

magento-deployment-service[bot] commented 2 months ago

Hi @engcom-Delta, here is your Magento Instance: https://548f3793e0dbb09d97d328fd2792b4f7.instances-prod.magento-community.engineering Admin access: https://548f3793e0dbb09d97d328fd2792b4f7.instances-prod.magento-community.engineering/admin_da81 Login: fd7049c1 Password: 47f5220db7c7

mohammedTBB commented 2 months ago

I have the same issue, is there any fix for this?

Lathanao commented 2 months ago

Same there

thespacersm commented 2 months ago

Same (2.4.7-p2) attachEvent

jointothedarkside commented 2 months ago

Same error while trying to collapse customer options at Stores->Configuration->Customer Configuration Magento ver. 2.4.7-p2 image

barryvdh commented 1 month ago

We're having the same issue.

likearocket commented 1 month ago

Also having the same issue.

hostep commented 1 month ago

Instead of posting "happens as well", it would really help if people could specify exact steps to reproduce and some details about their environment and if JS files are being minified and/or bundled (using built-in Magento functionality or custom ones). Also if this happens consistently, or only "sometimes"? Which browser is being used?

Maybe we'll see a pattern after a while that might point us in the direction of the bug.

likearocket commented 1 month ago

If I delete my browser history/cache and refresh the page after it happens, the page will load correctly but then occur again on another admin page.

Merge JavaScript Files: No Enable JavaScript Bundling: Yes Minify JavaScript Files: No

No custom modules doing this.

sheepfy commented 1 month ago

Instead of posting "happens as well", it would really help if people could specify exact steps to reproduce and some details about their environment and if JS files are being minified and/or bundled (using built-in Magento functionality or custom ones). Also if this happens consistently, or only "sometimes"? Which browser is being used?

Maybe we'll see a pattern after a while that might point us in the direction of the bug.

@hostep I am working on 2 stores, both are mostly unified (admin side should be the same in both). After upgrading to 2.4.7-p2, one store have this issue (we found it today). The other store do not have it.

Also, after clearing site data in the broken store, the .removeClass errors are gone, but the ah.attachEvent errors are back.

sheepfy commented 1 month ago

@kanidaya Can you confirm if you are having a patch applied from https://github.com/magento/magento2/issues/33593 (the one made by @AndresInSpace ) ?

sheepfy commented 1 month ago

@hostep @kanidaya Ok, I have found where this is coming from and I can confirm that is not reproductible on the latest upgrade.

Since I have 2 stores to work with, one store was having no overwrites over the mixins.js file. But my other store it was having various patches on mixins.js file with the scope of solving the https://github.com/magento/magento2/issues/33593 issue, which got solved thanks to @AndresInSpace.

My mixins.js file that was causing the issue it was having this lines:

var contexts = require.s.contexts,
        defContextName = '_',
        defContext = contexts[defContextName],
        unbundledContext = require.s.newContext('$'),
        defaultConfig = defContext.config,
        unbundledConfig = {
            baseUrl: defaultConfig.baseUrl,
            paths: defaultConfig.paths,
            shim: defaultConfig.shim,
            config: defaultConfig.config,
            map: defaultConfig.map
        },
        rjsMixins;

instead of this:

var contexts = require.s.contexts,
        defContextName = '_',
        defContext = contexts[defContextName],
        unbundledContextName = '$',
        unbundledContext = contexts[unbundledContextName] = require.s.newContext(unbundledContextName),
        defaultConfig = defContext.config,
        unbundledConfig = {
            baseUrl: defaultConfig.baseUrl,
            paths: defaultConfig.paths,
            shim: defaultConfig.shim,
            config: defaultConfig.config,
            map: defaultConfig.map
        },
        rjsMixins;

After removing the overwrites, the error is now gone.

Full diff here:

@@ -6,11 +6,11 @@ define('mixins', [
     'module'
 ], function (module) {
     'use strict';
-
     var contexts = require.s.contexts,
         defContextName = '_',
         defContext = contexts[defContextName],
-        unbundledContext = require.s.newContext('$'),
+        unbundledContextName = '$',
+        unbundledContext = contexts[unbundledContextName] = require.s.newContext(unbundledContextName),
         defaultConfig = defContext.config,
         unbundledConfig = {
             baseUrl: defaultConfig.baseUrl,
@@ -205,7 +205,10 @@ require([
     var contexts = require.s.contexts,
         defContextName = '_',
         defContext = contexts[defContextName],
+        unbundledContextName = '$',
+        unbundledContext = contexts[unbundledContextName],
         originalContextRequire = defContext.require,
+        originalContextConfigure = defContext.configure,
         processNames = mixins.processNames;

     /**
@@ -219,6 +222,15 @@ require([
         return originalContextRequire(deps, callback, errback);
     };

+    /**
+     * Wrap original context configuration to update unbundled context,
+     * that way it is able to respect any changes done after mixins module has initialized.
+     */
+    defContext.configure = function (cfg) {
+        originalContextConfigure(cfg);
+        unbundledContext.configure(cfg);
+    };
+
     /**
      * Copy properties of original 'require' method.
      */
@@ -232,10 +244,19 @@ require([
      * from it every time require call happens.
      */
     defContext.defQueue.shift = function () {
-        var queueItem = Array.prototype.shift.call(this);
+        var queueItem = Array.prototype.shift.call(this),
+            lastDeps = queueItem && queueItem[1];

-        queueItem[1] = processNames(queueItem[1], defContext);
+        if (Array.isArray(lastDeps)) {
+            queueItem[1] = processNames(queueItem[1], defContext);
+        }

         return queueItem;
     };
+
+    require(['jquery'], function ($) {
+        'use strict';
+
+        $.noConflict();
+    });
 });
AndresInSpace commented 1 month ago

I'd like to point out if you have Magento in production mode it's probably from static content versioning change. Do a static content deployment for admin side, then clean or flush cache.

AndresInSpace commented 1 month ago

@kanidaya @likearocket @barryvdh @jointothedarkside

Please ensure if in production mode that you have redeployed admin static content and flushed cache first.

If you still have this issue, please try my patch #39097 and let us know if that resolved it.

I see no requirejs/mixins.js in the stack traces provided, that is why I am thinking it's the mixin based issue - if not a deployment issue due to static-content version change.

engcom-Delta commented 1 month ago

Hi @kanidaya @jointothedarkside ,

Thanks for your reporting and collaboration. We have verified the issue in latest 2.4-develop instance and magento 2.4.7-p2, but we are unable to reproduce the issue. Kindly refer the screenshots.

Steps to reproduce :

  1. Install 2.4.7 version
  2. Upgrade to 2.4.7-p2 version
  3. Create 2 stores
  4. Navigate to Stores->Configuration->Customer Configuration
  5. Observe error is not displaying in console. image

Please let us know if any other steps are needed to be performed.

Thanks.

engcom-Delta commented 4 weeks ago

Hi @kanidaya @jointothedarkside ,

We have noticed that this issue has not been updated since long time. Hence we assume that this issue is fixed now, so we are closing it. Please feel to raise a fresh ticket or reopen this ticket if you need more assistance on this.

Thanks.

nikolaykravchenko commented 3 weeks ago

The issue is still exists on 2.4.7-p3. Try to reproduce with these steps:

  1. Open Stores -> Configuration.
  2. Open chrome dev tools (console)
  3. Update page via ctrl+f5 few times (5-10). You will see the error image