1

I recently upgraded a Magento CE instance from 1.9.0.1 to 1.9.1.0. The upgrade was performed using Magento Connect (aka Downloader).

I'm noticing now that when new orders are placed on the backend, after submit the application returns a blank page. The orders are captured.

However, now we are unable to send tracking numbers when shipments are created for the same reason. Upon submit (to send the customer the tracking number), a blank page is returned in Admin and the email does not send out to the customer.

Any help is greatly appreciated.

In the exception log, I see this but am not sure it's related at this point:

2015-03-17T14:47:00+00:00 ERR (3): 
exception 'Mage_Core_Exception' with message 'Invalid block type: ' in /var/www/html/magento/app/Mage.php:595
Stack trace:
#0 /var/www/html/magento/app/code/core/Mage/Core/Model/Layout.php(495): Mage::throwException('Invalid block t...')
#1 /var/www/html/magento/app/code/core/Mage/Core/Model/Layout.php(437): Mage_Core_Model_Layout->_getBlockInstance('', Array)
#2 /var/www/html/magento/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('', 'checkout.cart')
#3 /var/www/html/magento/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('', 'checkout.cart')
#4 /var/www/html/magento/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layou
t_Element), Object(Mage_Core_Model_Layout_Element))
#5 /var/www/html/magento/app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layou
t_Element))
#6 /var/www/html/magento/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks()
#7 /var/www/html/magento/app/code/core/Mage/Core/Controller/Varien/Action.php(269): Mage_Core_Controller_Varien_Action->generateLayoutBlock
s()
#8 /var/www/html/magento/app/code/core/Mage/Checkout/controllers/CartController.php(177): Mage_Core_Controller_Varien_Action->loadLayout()
#9 /var/www/html/magento/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Checkout_CartController->indexAction()
#10 /var/www/html/magento/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch(
'index')
#11 /var/www/html/magento/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Obje
ct(Mage_Core_Controller_Request_Http))
#12 /var/www/html/magento/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#13 /var/www/html/magento/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#14 /var/www/html/magento/index.php(87): Mage::run('', 'store')
#15 {main}

UPDATE: 2015-03-19 -- I'm seeing the following error in $MAGE/var/log/system.log:

2015-03-19T23:18:15+00:00 ERR (3): Warning: simplexml_load_string(): </layo> in /var/www/html/magento/app/code/core/Mage/Core/Model/Layout/Update.php on line 450

UPDATE: 2015-03-27 -- I fixed the issue from the last update (the closing tag) but am still getting the blank page on order submit and when attempting to send the shipping tracking email.

UPDATE: 2015-03-27 -- I think I've isolated the issue now. When I attempt to Send the Tracking Email, I'm seeing the following error in /var/log/httpd/error_log:

[Fri Mar 27 12:55:37.491424 2015] [:error] [pid 9974] [client xx.xxx.xxx.xxx:55842] PHP Fatal error:  Call to undefined function mb_convert_encoding() in /var/www/html/magento/lib/Pelago/Emogrifier.php on line 556, referer: http://domain/index.php/admin/sales_order_shipment/view/shipment_id/936/key/d78c40f1d7b3198ca38f9b0e1259518f/

I checked my backup from 1.9.0.1 and this file is NOT in /lib. In fact, there is no $mage/lib/Pelago directory.

UPDATE: 2015-03-27 -- here is the function referenced in the error just above:

/**
542      * Returns the HTML with the non-ASCII characters converts into HTML entities and the unprocessable HTML tags removed.
543      *
544      * @return string the unified HTML
545      *
546      * @throws \BadMethodCallException
547      */
548     private function getUnifiedHtml() {
549         if (!empty($this->unprocessableHtmlTags)) {
550             $unprocessableHtmlTags = implode('|', $this->unprocessableHtmlTags);
551             $bodyWithoutUnprocessableTags = preg_replace('/<\\/?(' . $unprocessableHtmlTags . ')[^>]*>/i', '', $this->html);
552         } else {
553             $bodyWithoutUnprocessableTags = $this->html;
554         }
555 
556         return mb_convert_encoding($bodyWithoutUnprocessableTags, 'HTML-ENTITIES', self::ENCODING);
557     }

If I comment out line 556, the email sends but (obviously), it's blank. However, I believe this is the issue I'm attempting to resolve.

  • Any third party modules that might hook into that section? – Sander Mangel Mar 17 '15 at 19:06
  • Hi Sander, I have just two 3rd party modules: JeroenVermeulen_Solarium, ASchroder_SMTPPro - for Solr search and SMTP respectively. Thanks for the response. I'm combing through the logs now. – Christopher Clarke Mar 17 '15 at 19:18
  • The issue comes from a block that is wrongly named probably in an adminhtml layout file. Which modules might influence this section of Magento – Sander Mangel Mar 17 '15 at 19:19
  • Sander, thanks. I just realized there is another (legacy) 3rd party module - Enhanced Product Grid (admin) that may be the cause of this. I'm removing this from a DEV instance now to see if this resolves the issue. – Christopher Clarke Mar 17 '15 at 19:32
  • I removed the Enhanced Product Grid but am still getting a blank page when attempting to send tracking information to a customer.......any other insight? :-) – Christopher Clarke Mar 17 '15 at 19:56
3

Please ensure that you have the mbstring extension installed & available to PHP.

  • Ben, thanks for the help on this. Installing php-mbstring did the trick. Outbound shipping confirmations are going out, no more blank pages. – Christopher Clarke Mar 30 '15 at 3:05
1

I'm guessing there is a problem with your layout update xml file.

Have you disabled every third party module? Disable all 3rd party modules and see if the problem still occurs.

Download a tar ball of 1.9.1.0 extract it and do a diff -Naur between your installation app/code/core folder and the one from the tar ball also do this with app/design.

You may need to drill down into the design folder further.

  • Conrad, thanks for this. I just ran a diff on both the 1.9.1.0 tarball and my current build. No changes to core, only noted changes in app/design. I'm focused on adminhtml, since that seems to be where the blank page issue is presenting itself. It's still not obvious where the issue is, but I'll still continue to dig. – Christopher Clarke Mar 26 '15 at 22:54
  • I've re-read your original post. I think a layout xml file has an incorrectly closed tag. something like </layo> rather than </layout> you could probably grep for it in the design folder. – Conrad Jones Mar 27 '15 at 9:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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