DataStreamUtils.collect() needs to obtain the local machine's IP so that the job can send the results back. In the case of local StreamEnvironments, it uses InetAddress.getLocalHost(), which attempts to resolve the local hostname using DNS.
If DNS is not available (for example, when offline) or if DNS is available but cannot resolve the hostname (for example, if the hostname is an intranet name but the machine is not currently on that network), an UnknownHostException will be thrown (and wrapped in an IOException).
If the resolved IP is not reachable for some reason, streaming results will fail.
Since this case is for local execution only, it seems that using InetAddress.getLoopbackAddress() would work just as well, and avoid the assumptions made by getLocalHost().