diff --git a/binaries/daemon/src/pending.rs b/binaries/daemon/src/pending.rs index 834d668f..918cf6c4 100644 --- a/binaries/daemon/src/pending.rs +++ b/binaries/daemon/src/pending.rs @@ -1,4 +1,7 @@ -use std::collections::{HashMap, HashSet}; +use std::{ + collections::{HashMap, HashSet}, + intrinsics::mir::Len, +}; use dora_core::{ config::NodeId, @@ -6,7 +9,7 @@ use dora_core::{ daemon_messages::{DaemonReply, DataflowId, Timestamped}, message::uhlc::{Timestamp, HLC}, }; -use eyre::{bail, Context}; +use eyre::{bail, Context, ContextCompat}; use tokio::{net::TcpStream, sync::oneshot}; use crate::tcp_utils::tcp_send; @@ -128,11 +131,20 @@ impl PendingNodes { None => Ok(()), } } else { + let node_id_message = if self.exited_before_subscribe.len() == 1 { + self.exited_before_subscribe + .iter() + .next() + .map(|node_id| node_id.to_string()) + .unwrap_or("".to_string()) + } else { + "".to_string() + }; Err(format!( "Some nodes exited before subscribing to dora: {:?}\n\n\ This is typically happens when an initialization error occurs in the node or operator. To check the output of the failed - nodes, run `dora logs {} `.", + nodes, run `dora logs {} {node_id_message}`.", self.exited_before_subscribe, self.dataflow_id )) };