Handling errors is not reliable. I have come up with some tests that should return error, but it doesn't. I'll details how to reproduce the bug later.