Skip to content

rust.error_result_unused

Correctness High

Detects Result values that are ignored without handling errors.

Ignored Results:

  • Silent failures — Errors go unnoticed
  • Data loss — Operations fail without warning
  • Hard to debug — No error trail
// ❌ Before (Result ignored)
fn save_config(config: &Config) {
std::fs::write("config.json", serde_json::to_string(config).unwrap());
// Returns Result, but we ignore it!
}
// ✅ After (Result handled)
fn save_config(config: &Config) -> Result<(), Error> {
std::fs::write("config.json", serde_json::to_string(config)?)?;
Ok(())
}
// Or explicitly acknowledge:
fn save_config_best_effort(config: &Config) {
let _ = std::fs::write("config.json", serde_json::to_string(config).unwrap_or_default());
// `let _ =` shows intentional discard
}
  • Function calls returning Result without handling
  • Missing ? operator propagation
  • Result assigned but never checked

Unfault can add ? operator or explicit let _ = acknowledgment.