Sounds like the problem is with your route changes. I think the routes_onerror needs to be inside of the routers dict. Make sure to restart web2py after you edit routes.py.
routers = dict( BASE = dict( routes_onerror = [ (r'*/400', r'/init/default/doesnotexist'), (r'*/404', r'/init/default/doesnotexist'), (r'init/*', r'/init/default/error') ] )