util: better error handling