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!

A recent forum post asked about possible solutions for a Movable Type error that looked like this:

Error rebuilding file /var/www/...: Publish error in template '...': Error in tag: error in module...: Publish error in template '...': Error in tag: Error in tag: error in module ...: Publish error in template '...': Unknown tag found: ...

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?
If you ever see the error message "Can't call method 'label' on an undefined value" in Movable Type while publishing one or more entries, here is what the problem (probably) is and a solution.
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 <mtLink> 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.