I see this has changed slightly in dev but I think it will also apply to dev.

The offending code.

  // Handle views
  if ($router_item['page_callback'] == 'views_page') {
    $router_item['page_callback'] = 'view';
    $router_item['page_type'] = array_shift($router_item['page_arguments']);
    $router_item['page_id'] = array_shift($router_item['page_arguments']);
    // See http://drupal.org/node/651798 for the reason why this if is needed
    if (is_array($router_item['page_id'])) {
      $router_item['page_id'] = array_shift($router_item['page_id']);
    }
    return $router_item;
  }

I implemented a workaround by adding the following to the top of the function.

  if (!is_array($router_item['page_arguments'])) {
    $router_item['page_arguments'] = array();
  }
CommentFileSizeAuthor
#1 boost-917908.patch851 bytesmikeytown2
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

mikeytown2’s picture

FileSize
851 bytes

Odds are you have something broken in your menu router table; every row in the page_arguments column is a serialized array in the menu_router table.

NaX’s picture

@mikeytown2
Thanks, I have mostly come across this error on Access Denied pages on a multi language site, if that makes a difference.

mikeytown2’s picture

Version: 6.x-1.18 » 6.x-1.x-dev
Status: Needs review » Fixed

committed, thanks for the 403 explanation!

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.