Use WebApplicationException instead of RuntimeException so we can have a nicer formed 500 error to the client