The input stream produced by asyncFetch is closed automatically at EOL, so the available() call throws this for an empty file.