Drupal Answers is a question and answer site for Drupal developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm getting a bunch of PHP errors every time the cron runs. I can't seem to track down what is causing them all.

Cannot use a scalar value as an array in drupal_render() (line 5822 of /var/www/vhosts/tlthost.net/httpdocs/includes/common.inc).

Cannot use a scalar value as an array in drupal_render() (line 5767 of /var/www/vhosts/tlthost.net/httpdocs/includes/common.inc).

Invalid argument supplied for foreach() in element_children() (line 6300 of /var/www/vhosts/tlthost.net/httpdocs/includes/common.inc).

Cannot use a scalar value as an array in adaptivetheme_page_alter() (line 235 of /var/www/vhosts/tlthost.net/httpdocs/sites/all/themes/at_core/inc/alter.inc

Cannot use a scalar value as an array in user_relationships_ui_page_alter() (line 247 of /var/www/vhosts/tlthost.net/httpdocs/sites/tlt/modules/user_relationships/user_relationships_ui/user_relationships_ui.module).

Cannot use a scalar value as an array in fbconnect_page_alter() (line 568 of /var/www/vhosts/tlthost.net/httpdocs/sites/all/modules/fbconnect/fbconnect.module).

Cannot use a scalar value as an array in block_page_build() (line 269 of /var/www/vhosts/tlthost.net/httpdocs/modules/block/block.module).

I'm hoping you know what's causing this one. it might help me figure out the rest of the errors.

share|improve this question

closed as too broad by Shawn Conn, Adrian Cid Almaguer, kiamlaluno Jun 18 at 5:09

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

Sometimes these error messages come up on my sites if cron is run while the site is in maintenance mode. I'm guessing the maintenance mode template for our site has something to do with it, but it could be a variety of things.

When cron runs, it is still running through Drupal's theme system, so you probably have something awry in either your theme or one of your custom modules. Does this happen every time cron runs, or just sometimes?

A final troubleshooting step would be to install elysia_cron and run each cron task individually to see which one might be causing all these errors.

See also: Warning: Cannot use a scalar value as an array

share|improve this answer
    
Thanks. I'll have to wait and see what happens when it's not in maintenance mode. That's been delayed because I ran into a huge code problem. I get info from Amazon, and they just changed their API in a way that killed all I had done. – TomP Dec 7 '12 at 15:09
    
Ouch! Well, hopefully it works out for you. – geerlingguy Dec 7 '12 at 20:02
    
FWIW, this problem is still around (Drupal 7.31). I'm getting scalar-as-array warnings from inside drupal_render(), element_children(), ctools_page_alter(), and ckeditor_page_build(). Everything is fine when I'm not in maintenance mode. I might dig into this, but, to be honest, it's not near the top of my list... – Jim Miller Sep 9 '14 at 1:22
    
Still going in 7.35...looks like it's the metatag module for me – Clive Mar 28 '15 at 21:50
    
This is one of the peskiest problems ever to track down. I too have this issue. It all centers around page_builds and many modules that alter the page build. – Brady Nov 3 '15 at 20:03

That error occurs when you use a stdClass() type object as an array.

e.g

Given a node object:

$node->title = 'foo'; // right
$node['title'] = 'foo'; // wrong

Perhaps that will help debug the solution, maybe it's a php syntax issue in a hook_cron implementation

share|improve this answer

Drupal is set to skip the cron run when in maintenance mode. I suggested this years ago, because I felt if you're in maintenance mode, you are most likely trying to prevent database changes while taking backups. Someone else wrote a patch, and that's how it works now.

share|improve this answer

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