diff --git a/crates/taurus/src/main.rs b/crates/taurus/src/main.rs index 46893fa..ea7932e 100644 --- a/crates/taurus/src/main.rs +++ b/crates/taurus/src/main.rs @@ -19,6 +19,7 @@ use taurus_core::context::context::Context; use taurus_core::context::executor::Executor; use taurus_core::context::registry::FunctionStore; use taurus_core::context::signal::Signal; +use taurus_core::runtime::error::RuntimeError; use tokio::signal; use tokio::time::sleep; use tonic_health::pb::health_server::HealthServer; @@ -41,6 +42,20 @@ fn handle_message( None => Context::default(), }; + if flow.node_functions.is_empty() { + let duration_millis = start.elapsed().as_millis() as i64; + return ( + Signal::Failure(RuntimeError::simple_str( + "InvalidFlow", + "This flow has no nodes to execute!", + )), + RuntimeUsage { + flow_id: flow.flow_id, + duration: duration_millis, + }, + ); + } + let node_functions: HashMap = flow .node_functions .into_iter()