Typical causes of failed upgrade

The upgrade process might fail due to objective reasons. Below, you can find a detailed description of each possible case.

Insufficient File System Permissions

Magento Connect requires writing permissions to Magento files in order to install new extensions or to upgrade an existing extension to the latest version. If Extension is installed and then the permissions on a file system are changed (i.e., from ‘write’ to ‘read’), Magento Connect Manager will fail to copy the latest files from an archived package to the Magento Installation folder.

Server configuration

Configuration parameters such as ‘max_execution_time’, ‘memory_limit’, or ‘mysql config parameters’ for both PHP and MySQL may negatively impact the synchronization and upgrade processes.

Failed previous upgrades

Consider the following scenario: a previous upgrade failed, a database schema was not updated properly (i.e., some columns were not added to the tables), but the system continued to function properly. If some modifications are made to those columns during the fresh upgrade, the upgrade script will fail.

Magento or 3rd Party cache (i.e., Memcached, Redis, ACL)

After the Module is updated via Magento Connect Manager, it may have an ‘old codebase’ in conjunction with an updated database schema in some cases. As a result, the old cached files can be used by Magento cache or any other cache engine.

Magento Connect Manager conflicts with PHP version 5.4 or higher

The problem is related to the compatibility problem of Magento Connect Manager and PHP versions greater than 5.3.x. due to the changes in PHP 5.4+ for its function unpack (http://php.net/unpack).
The Magento Connect Manager script fails long paths (more than 100 characters; see the typical error below) on PHP 5.4 and higher because a function default behavior has been changed, leading to an unexpected result.
M2E Pro Team has reported this issue to the Magento Team, with the resolution to follow. However, at this moment, the only solution is to upgrade the M2E Pro extension manually.