- use bottle.abort instead of HTTPError