Tonight I received the following message on my mail server:
check: no loaded plugin implements 'check_main': cannot scan! at /usr/share/perl5/Mail/SpamAssassin/PerMsgStatus.pm line 164.
I searched around for a bit, and went crazy before I finally understood what was going on. The bottom line is that amavisd-new was trying to load spamassassin on the server, and spamassasin was failing to load. Spamassassin expects to run a module called "Check", but it was failing to find it.
The first step is to find where this is loaded. a quick
egrep Plugin::Check * in your spamassassin directory should reveal this. The trick is then to make sure that whichever file this is written in is getting loaded by spamassassin.
In my particular situation, egrep returned nothing, so it turned out that this line was missing. I added it quickly to the top of v310.pre and restarted both spamassassin, then amavis. Presto! I was back in business, and my mail started de-queueing.