serve errors ourself so that status codes work