when setting on_error improper, it should fail loud instead of accepting
fix: only upgrade, never downgrade
Merge pull request #42 from Tieske/fail_loud

when setting on_error improper, it should fail loud instead of accepting