I was thinking of the kind of errors that you’d want to catch during testing, but somehow just miss every so often. Just simple bugs that require manual intervention, otherwise the canister either traps during execution every time, or (maybe worse) returns wrong data. It happens all the time to someone. (Certainly not me though because my code is always perfect. \s) After you get to sufficiently complex business logic, you’re almost guaranteed to have some whacky input combinations.
E.g. you have function core_business_logic(some_arguments: ???) which does the thing your canister is supposed to do. It assumes some list always contains at least 3 elements for some reason, but you overlooked a corner case (or introduced a bug) that can shrink the list down to 2 elements. Now at the beginning of your function, you simply access element 3 and (in Rust) .unwrap() the optional value. Tada, you cannot call the function properly anymore. And for this example we can just assume that this function is the only one that can append to the list. Without manual intervention, the canister is basically useless.