better communication error handling