WordPress Automatic Upgrades - One of the pitfalls

This morning I woke up to announcements of a security upgrade (3.0.4) for WordPress. It is highly recommended that everyone upgrade their installs.

I set to the task of upgrading this and a couple of other websites I look after. All of my sites are on 3.0, but not all of them have seen an update since. Nevertheless I know that upgrading is usually a one click job, and even if you have a more complex setup with massive plugins or theme frameworks like thematic where the order of updating can be important, it usually goes pretty smoothly.

So I was pretty shocked when my relatively uncomplicated wedding site failed to update from 3.0.1.

Fatal error: Call to undefined function update_core() in /blah/blah/blah/wp-admin/includes/class-wp-upgrader.php on line 895

The error message I received is pretty nonsensical - the site hadn't been hacked (either by a hacker or my keen development skills) and there's absolutely no reason why a WordPress function should be missing. I had already upgraded my blog from 3.0.3 successfully, but I know the WP team wouldn't release an upgrade that only worked from the latest version.

I checked permissions on my upgrade folder were set to 777 - this wasn't the problem, although it often is when receiving errors during automatic upgrade. After a bit of digging around, turns out the error message I got is one of a few error messages that can appear when you try to automatically update but don't have enough disk space. Pretty simple problem to solve, but not an easy one to figure out when you're staring at the WordPress admin screen!

Turns out, another version of this error - when it gets a bit further along this process - may also kick out the following error:

Incompatible Archive.: PCLZIPERRBAD_FORMAT (-10) : Unable to find End of Central Dir Record signature

Which makes a little more sense - the archive uploaded is never complete because there's no room for the end of it.

I've had a scout around the internet to see if there are any other manifestations of this problem, not dug anything else up yet, but here are a few more articles on solving problems with automatic upgrades: