When I came across this issue and did a search there were a lot of other folks out there who had encountered this problem, but there didn’t seem to be a lot of answers for how to fix it.

Luckily I was determined to sort it out and I finally, with the help of our hosting support, found that the solution was really quite simple.

In our case we had two ftp accounts: one was the master ftp account and the other was one that was created by us. Although it didn’t cause problems prior to upgrading to version 3.2.1, having two different ftp accounts was the culprit that was stopping us from being able to update any of our plugins.

Whenever we’d try to automatically upgrade any plugin the screen would say:
Downloading update…
Unpacking the update…
Installing the latest version…
Deactivating the plugin…
Removing the old version of the plugin…
Could not remove the old plugin.
Plugin update failed.

And to top it all off, the plugin would vanish as well! Luckily I had backup copies and could add it back in lickety-split.

I tried opening up all the permissions in an effort to get past this seemingly silly error, but still no luck.

In the end it turns out that the problem was occurring simply because all of our files were a mix of having the original master ftp account as the owner, and the new ftp account as the owner. WordPress didn’t like this at all, even with the permissions all correct to allow each the proper access and privileges. So all we needed to do was change the owner of everything to the master ftp account and voila! Problem solved!

It took quite a few hours over quite a few days to sort this all out, and it was some random comment from our support that flipped the switch in my brain and turned on the light bulb! But thankfully, a simple fix indeed.