I can't say I've ever run into this, but it sounds like you have. You might find there's a common pattern which distinguishes this mistake from typical scenarios where you did something else wrong and the compiler can use that to provide more helpful errors in this case.
Seems like, we do for x in Result-or-Option<T> and T is IntoIterator, and then we treat x as if it is the thing T was an iterator for, rather than T. That's detectable.
So, worth taking some examples of code where you did this, and writing up a report that the compilers team can look at. If you've got some idea what you're doing you might well even find Rust's error reporting code readable enough to dive in and try some fixes yourself.
I've seen users come asking for help about it on IRC a bunch of times, so it's probably a pretty common typo, at least among beginners. In retrospect it might've been better if there was an explicit conversion to the (Into)Iterator type instead of being impled on Option/Result itself.
Seems like, we do for x in Result-or-Option<T> and T is IntoIterator, and then we treat x as if it is the thing T was an iterator for, rather than T. That's detectable.
So, worth taking some examples of code where you did this, and writing up a report that the compilers team can look at. If you've got some idea what you're doing you might well even find Rust's error reporting code readable enough to dive in and try some fixes yourself.