Make ImageMatchResult visualization work again

Change-Id: I0514cbace0718b0ee09b4c23458d7066b2e76b98
Signed-off-by: James Kuszmaul <jabukuszmaul+collab@gmail.com>
diff --git a/aos/network/web_proxy.cc b/aos/network/web_proxy.cc
index b53feab..972b1d7 100644
--- a/aos/network/web_proxy.cc
+++ b/aos/network/web_proxy.cc
@@ -256,6 +256,12 @@
   ChannelInformation info;
   info.transfer_method = transfer_method;
 
+  // If we aren't keeping a buffer and there are no existing listeners, call
+  // Fetch() to avoid falling behind on future calls to FetchNext().
+  if (channels_.empty() && buffer_size_ == 0) {
+    fetcher_->Fetch();
+  }
+
   channels_.emplace(data_channel, info);
 }
 
@@ -542,7 +548,14 @@
         configuration::GetChannel(event_loop_->configuration(), channel,
                                   event_loop_->name(), event_loop_->node());
     if (comparison_channel == nullptr) {
-      LOG(ERROR) << "Channel not available: "
+      LOG(ERROR) << "Channel does not exist: "
+                 << configuration::StrippedChannelToString(channel);
+      continue;
+    }
+    if (!configuration::ChannelIsReadableOnNode(comparison_channel,
+                                                event_loop_->node())) {
+      LOG(ERROR) << "Channel not available on node "
+                 << event_loop_->node()->name()->string_view() << ": "
                  << configuration::StrippedChannelToString(channel);
       continue;
     }