diff --git a/async/src/cmdline_client.rs b/async/src/cmdline_client.rs
index e2c97f5e8a1fd1f075834c0488eb0e59d2d59719..23dcebe76cb021e9eec56721bdd434e417ab79c5 100644
--- a/async/src/cmdline_client.rs
+++ b/async/src/cmdline_client.rs
@@ -239,6 +239,9 @@ impl<'a> CmdlineRunner<'a> {
                 // TODO buffers
                 let mut buf = [0u8; 1000];
                 let l = si.read(&mut buf).await.map_err(|_| Error::ChannelEOF)?;
+                if l == 0 {
+                    return Err(Error::ChannelEOF)
+                }
 
                 let buf = &buf[..l];