在非对象上调用成员函数getFullActionName()

I am working with Magento 1.9.0 and I am trying to get the cron to pick up an abandoned cart call, but there an exception that keeps happening.

TRIGGER: shutdown function
Last error: 
Array
(
    [type] => 1
    [message] => Call to a member function getFullActionName() on a non-object
    [file] => /chroot/home/abc/URL.com/html/store/app/code/local/Mnwebco/Personalize/Model/Observer.php
    [line] => 9
)

Basically it is failing at that point and not moving forward according to AOEscheduler.

Here is the code of the Local module.

class Mnwebco_Personalize_Model_Observer
{
    public function catalogProductLoadAfter(Varien_Event_Observer $observer)
    {
        // set the additional options on the product
        $action = Mage::app()->getFrontController()->getAction();
        if ($action->getFullActionName() == 'checkout_cart_add' ||  $action->getFullActionName() == 'checkout_cart_updateItemOptions') {
            // assuming you are posting your custom form values in an array called extra_options...
            //if ($options = $action->getRequest()->getParam('extra_options'))
            //Mage::log('req parms '.$action->getRequest()->getParam('custommessage'));
            if ($action->getRequest()->getParam('custommessage')!='') {
                $personvalue = $action->getRequest()->getParam('custommessage');
                $product = $observer->getProduct();

                // add to the additional options array
                $additionalOptions = array();
                if ($additionalOption = $product->getCustomOption('additional_options')) {
                    $additionalOptions = (array) unserialize($additionalOption->getValue());
                }

                $additionalOptions[] = array(
                    'label' => 'Message to add',
                    'value' => $personvalue,
                );

                // add the additional options array with the option code additional_options
                $observer->getProduct()
                    ->addCustomOption('additional_options', serialize($additionalOptions));
            } elseif ($action->getRequest()->getParam('customsigmessage')!='') {
                $personvalue = $action->getRequest()->getParam('customsigmessage');
                $product = $observer->getProduct();

                // add to the additional options array
                $additionalOptions = array();
                if ($additionalOption = $product->getCustomOption('additional_options')) {
                    $additionalOptions = (array) unserialize($additionalOption->getValue());
                }

                $additionalOptions[] = array(
                    'label' => 'Message to add with signature',
                    'value' => $personvalue,
                );

                // add the additional options array with the option code additional_options
                $observer->getProduct()
                    ->addCustomOption('additional_options', serialize($additionalOptions));

                } elseif ($action->getRequest()->getParam('bridesname')!='') {
                    $bride = $action->getRequest()->getParam('bridesname');
                    $groom = $action->getRequest()->getParam('groomsname');
                    $wedding = $action->getRequest()->getParam('weddingdate');

                    $product = $observer->getProduct();

                    // add to the additional options array
                    $additionalOptions = array();
                    if ($additionalOption = $product->getCustomOption('additional_options')) {
                        $additionalOptions = (array) unserialize($additionalOption->getValue());
                    }

                    $additionalOptions[] = array(
                        'label' => 'Personalized Information',
                        'value' => 'Bride: '.$bride.', Groom: '.$groom.', Date: '.$wedding,
                    );

                    /*
                    $additionalOptions[] = array(
                        'label' => 'bridesname',
                        'value' => $bride,
                    );
                    $additionalOptions[] = array(
                        'label' => 'groomsname',
                        'value' => $groom,
                    );
                    $additionalOptions[] = array(
                        'label' => 'weddingdate',
                        'value' => $wedding,
                    );
                    */

                    // add the additional options array with the option code additional_options
                    $observer->getProduct()
                        ->addCustomOption('additional_options', serialize($additionalOptions));
                }
         }
    }

    public function checkoutCartUpdateItemsBefore (Varien_Event_Observer $observer)
    {
        // set the additional options on the product
        $action = Mage::app()->getFrontController()->getAction();
        //Mage::log('!imp '.$action->getFullActionName());
        if ($action->getFullActionName() == 'checkout_cart_updateItemOptions') {
            // assuming you are posting your custom form values in an array called extra_options...
            //if ($options = $action->getRequest()->getParam('extra_options'))
            //Mage::log('req parms '.$action->getRequest()->getParam('custommessage'));
            if ($action->getRequest()->getParam('custommessage')!='') {
                $personvalue = $action->getRequest()->getParam('custommessage');
                $product = $observer->getItem()->getProduct();

                // add to the additional options array
                $additionalOptions = array();
                if ($additionalOption = $product->getCustomOption('additional_options')) {
                    $additionalOptions = (array) unserialize($additionalOption->getValue());
                }

                $additionalOptions[] = array(
                    'label' => 'Message to add',
                    'value' => $personvalue,
                );

                // add the additional options array with the option code additional_options
                $observer->getItem()->getProduct()
                    ->addCustomOption('additional_options', serialize($additionalOptions));
            } elseif ($action->getRequest()->getParam('customsigmessage')!='') {
                $personvalue = $action->getRequest()->getParam('customsigmessage');
                $product = $observer->getItem()->getProduct();

                // add to the additional options array
                $additionalOptions = array();
                if ($additionalOption = $product->getCustomOption('additional_options')) {
                    $additionalOptions = (array) unserialize($additionalOption->getValue());
                }

                $additionalOptions[] = array(
                    'label' => 'Message to add with signature',
                    'value' => $personvalue,
                );

                // add the additional options array with the option code additional_options
                $observer->getItem()->getProduct()
                    ->addCustomOption('additional_options', serialize($additionalOptions));
            } elseif ($action->getRequest()->getParam('bridesname')!='') {
                $bride = $action->getRequest()->getParam('bridesname');
                $groom = $action->getRequest()->getParam('groomsname');
                $wedding = $action->getRequest()->getParam('weddingdate');

                $product = $observer->getItem()->getProduct();

                // add to the additional options array
                $additionalOptions = array();
                if ($additionalOption = $product->getCustomOption('additional_options')) {
                    $additionalOptions = (array) unserialize($additionalOption->getValue());
                }

                $additionalOptions[] = array(
                    'label' => 'Personalized Information',
                    'value' => 'Bride: '.$bride.', Groom: '.$groom.', Date: '.$wedding,
                );

                // add the additional options array with the option code additional_options
                $observer->getItem()->getProduct()
                    ->addCustomOption('additional_options', serialize($additionalOptions));
            }
         }
    }

    public function salesConvertQuoteItemToOrderItem (Varien_Event_Observer $observer)
    {
         $quoteItem = $observer->getItem();
         if ($additionalOptions = $quoteItem->getOptionByCode('additional_options')) {
            $orderItem = $observer->getOrderItem();
            $options = $orderItem->getProductOptions();
            $options['additional_options'] = unserialize($additionalOptions->getValue());
            $orderItem->setProductOptions($options);
        }
    }
}

Your getAction() is probably returning null. A better approach would be to do

$action = Mage::app()->getRequest()->getActionName();

This will return a string. So, in your if conditions, use,

if($action == 'checkout_cart_add' ||  $action == 'checkout_cart_updateItemOptions') {}