I am getting this warning message when I go to store > configuration in the admin panel.

Warning: Invalid argument supplied for foreach() in /opt/lampp/htdocs/Magento2/vendor/magento/module-config/Model/Config/Structure/Mapper/Sorting.php

Posted my answer for the same. Need your suggestion in my answer.

  • I think issue is in following module app/code/Vendor/ModuleName/etc/adminhtml/system.xml file. – Shashank Gupta Jan 22 '18 at 7:59
  • did you face a similar issue and fixed it? The fix I answered is working but let me know if there is any other way to fix it. – Kalyan Chakravarthi V Jan 22 '18 at 8:02
  • Could you please do one thing? rename vendor folder and update composer once. – Pramod Kharade Jan 22 '18 at 8:05
  • 1
    yes, I got the similar issue , My case there is extra space issue , It is resolved by formatting system.xml file. – Shashank Gupta Jan 22 '18 at 8:09
  • 1
    Checked for tabs in the modules system.xml and removed them. It worked for me. Thanks. @PramodKharade tried composer update but the same issue persists if I don't remove the tabs in system.xml. – Kalyan Chakravarthi V Jan 22 '18 at 9:38

Two ways to fix this issue.

  1. Fixed it by changing the line 96 in this file vendor/magento/module-config/Model/Config/Structure/Converter.php.

Actual Code: if ($children->length && trim($child->nodeValue, "\n ") === '') {

Corrected Code: if ($children->length && trim($child->nodeValue, "\n\t ") === '') {

  1. Check if your XML file has any tab spacing within it. If so, remove the tab spacing and replace them with normal single spaces.
| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.