more aggressive error handling