ejabberd Import errors
10 Oct 2007
If you’re trying to import a Jabberd 1.x-style spool directory into ejabberd and you get an error that looks like...
RPC failed on the node ejabberd@localhost: {'EXIT',
                                            {{badmatch,{error,enoent}},
                                             [{jd2ejd,import_dir,1},
                                              {ejabberd_ctl,process,1},
                                              {rpc,'-handle_call/3-fun-0-',5}]}}
... there’s a couple of things you can try.
First, make sure the directory and file are both readable by ejabberd. Heck, make them readable by everyone, just to make sure.
Second, make sure the XML file is valid. If you’ve got a spool full of bad XML, you can’t import it. Try xmllint yourspoolfile.xml and see if you get any errors.
Third, make sure you’re giving the full path to the spool directory and not just the relative path. ejabberdctl import-dir ./myspool/example.com won’t work. You need ejabberdctl import-dir /full/path/to/myspool/example.com instead.
Finally, try import-file instead of import-dir and make sure to use the full path to the file.
I just spent half the morning figuring all that out. Now the solution is on the intarwebs and in the search indexes, so maybe this will help someone else.