Warning: Invalid argument supplied for foreach() in zen_preprocess_menu_link() (line 642 of /var/www//sites/all/themes/zen/template.php).
Warning: array_unshift() expects parameter 1 to be array, string given in zen_preprocess_menu_link() (line 651 of /var/www//sites/all/themes/zen/template.php).

I thought it was my module or subtheme, but after disabling both on my site it is still throwing warnings. It appears there is a link somewhere in Zen (or in Drupal core or a contrib module?) that is passing a class to localized options as a string instead of an array.




$variables['element']['#localized_options']['attributes']['class'] is supposed to be an array, isn't it? That's the way its treated in the menu_block.module. Hmmm…

It seems I have similar problem

I "solved" my PHP errors by downgrading from 7.x-5.4 to 7.x-5.1. Versions 7.x-5.x-dev and 7.x-5.2 did not do the trick for me.
I hope this helps patpluspun and the zen mantainers as well.

Issue summary:View changes
new739 bytes

I'm not sure if this is the _best_ way to solve the issue, but here's a fix.

We've been seeing this error for quite a while on a multilingual multisite.