diff --git a/src/conditions/vrl.rs b/src/conditions/vrl.rs index 3fb115e7ba7fc..5febe5ef1a222 100644 --- a/src/conditions/vrl.rs +++ b/src/conditions/vrl.rs @@ -63,6 +63,10 @@ impl ConditionalConfig for VrlConfig { .to_string() })?; + if !program.final_type_info().result.is_boolean() { + return Err("VRL conditions must return a boolean.".into()); + } + if !warnings.is_empty() { let warnings = Formatter::new(&self.source, warnings).colored().to_string(); warn!(message = "VRL compilation warning.", %warnings); @@ -233,6 +237,12 @@ mod test { Ok(()), Ok(()), ), + ( + log_event![], + r#""i_return_a_string""#, + Err("VRL conditions must return a boolean.".into()), + Ok(()), + ), ]; for (event, source, build, check) in checks {