zed-industries/zed · error
Invalid level: {level}
Error message
Invalid level: {level} What it means
Sentinel validation error from zlog's parse_level helper: the ZED_LOG level string matched none of the accepted case-insensitive levels (TRACE, DEBUG, INFO, WARN, ERROR, OFF/NONE). The offending raw string is embedded in the message.
Source
Thrown at crates/zlog/src/env_config.rs:60
if level.eq_ignore_ascii_case("TRACE") {
return Ok(log::LevelFilter::Trace);
}
if level.eq_ignore_ascii_case("DEBUG") {
return Ok(log::LevelFilter::Debug);
}
if level.eq_ignore_ascii_case("INFO") {
return Ok(log::LevelFilter::Info);
}
if level.eq_ignore_ascii_case("WARN") {
return Ok(log::LevelFilter::Warn);
}
if level.eq_ignore_ascii_case("ERROR") {
return Ok(log::LevelFilter::Error);
}
if level.eq_ignore_ascii_case("OFF") || level.eq_ignore_ascii_case("NONE") {
return Ok(log::LevelFilter::Off);
}
anyhow::bail!("Invalid level: {level}")
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn global_level() {
let input = "info";
let filter = parse(input).unwrap();
assert_eq!(filter.level_global.unwrap(), log::LevelFilter::Info);
assert!(filter.directive_names.is_empty());
assert!(filter.directive_levels.is_empty());
}
#[test]
fn directive_level() {View on GitHub (pinned to f4178619ac)
Solutions
- Set the log level env var to one of: TRACE, DEBUG, INFO, WARN, ERROR, OFF, or NONE
- Check for typos like 'WARNING' (use WARN) or 'FATAL' (use ERROR)
- Trim whitespace/quotes that may have leaked into the environment variable
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/zlog/src/env_config.rs:60 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20).
Data as JSON: /api/errors/af7e1ecf43ad1966.
Report an issue: GitHub.