Recently in Error Messages Category

Gather round the campfire kids, and listen to this cautionary tale. Â If you are reading this blog you probably heard about Trendolizer, my trend-tracking website, powered by Movable Type. Â Recently I noticed the server load for it was constantly over 20, with multiple run-periodic-tasks instances running at 100% processor use all the time. Â Not good!

The weird thing was that the error only happened when publishing the particular file via the publish queue using the 'run-periodic-tasks' script, but it didn't happen when publishing the file 'by hand'.

I recently encountered a bug in Movable Type where uploading a certain image failed with the message "Saving (filename) failed: Invalid image file format". Some digging led me to the file lib/MT/Image.pm where the uploaded image was failing a check. This was in MT4, but some older versions of MT5 can also have this happening. So, what is going on?

When creating a site with Movable Type, you might have seen the error above, or a variation. The full text usually reads something like: "An error occurred publishing date-based archive 'Monthly20100301000000': Publish error in template 'Monthly Entry Listing': Error in &lt;mtLink&gt; tag: Can't find template 'archive_index'". (or 'styles', or 'javascript', or 'feed_recent'...) So what to do when you get this message?

I already explained earlier what to make of cryptic "Can't call method ... on an undefined value" errors. Today, we are going to take a look at a different kind of errors that are often just as mysterious and frustrating: the dreaded "Error 500" when accessing any of Movable Type's .cgi scripts. The error logs of the webserver only tell you about "Premature end of script headers" in some script. Real informative...

Anybody who has used Movable Type for some time has seen it. The dreaded error message: Can't call method "..." on an undefined value at (some file) line (some number). So what does it mean when you get this error, and more importantly, how can you fix it? First, let's have a look at the cause of the error. In order to understand what is going on you first need to know a bit about how Movable Type works.