Had lots of “fun” tonight with my XMPP-compatible instant messaging server, ejabberd. For some reason since I moved it between servers it has been misbehaving. This has been a “fun” one to track down, since it wasn’t obvious. But tonight I have found the answer. Erlang (the language that ejabberd is written in) is a little obscure at times, but it turns out that if you turn the logging up enough, then you see strange errors in the logs. After a bit of Googling, the answer turns out to be a bug in Debian. The ejabberd package depends on the erlang-xmerl package being installed, but Debian for some reason forgot to make that a dependency of ejabberd as described in Debian bug 670307. Hopefully they’ll fix that soon, and until they do, the fix is just to apt-get or aptitude install erlang-xmerl so that the package gets installed.