Exact error messages are actually important.

Do you by any chance mean something like this?:
Code:
Restoring database failed with error:
Traceback (most recent call last):
File "/home/eschwartz/git/calibre/src/calibre/db/restore.py", line 125, in run
self.replace_db()
File "/home/eschwartz/git/calibre/src/calibre/db/restore.py", line 276, in replace_db
shutil.copyfile(dbpath, save_path)
File "/usr/lib/python2.7/shutil.py", line 82, in copyfile
with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: u'/tmp/fake-library/metadata.db'
The answer to that

is to `touch` the metadata.db first, since the file must exist even if it is completely scribbled over.
But if the file doesn't exist, then what was the first error message? calibre should never have opened, or should have recreated the database as empty.