I was trying to scan quite a big stack of documents in Brother's MFC-J435W multifunctional device and I was hitting some driver error after couple of pages. What made whole affair annoying wasn't the error. It was the fact that scanner would continue pulling pages. That made it impossible to easily continue scanning of nonfailed batch.
Proper behavior is to stop pulling new pages in case of an error. No programmer (and let's face it, firmware and driver programmers are ones deciding about this) would think to continue printing after paper jam. Why would they think that pulling paper after scan has failed is any different? If something fails, stop the feeder!
Since printer was on for a long time I figured that quick reboot would make it work properly. First I was asked some stupid question about losing all fax data even though I haven't used fax functionality on it. If you are going to stop user action with question, first check whether question is even necessary!
And, guess what, feeder starts working upon startup and picks each and every one of your papers through. For what purpose is this? And don't tell me it is to verify feeder. Of what possible use is information that feeder is not working during startup?
Whether feeder is functional or not matters only when user attempts to use it. At that time you can do quick self-test if you really must. However, you might as well actually use feeder and scan pages. If you retrieve data and move pages through, it works. Yep, you can do self-test and actual work at the same time.
I find current behavior very annoying because somebody had to write code in order to make product worse. If they were lazy and made no effort to write verification procedure and include it in startup, everything would be fine.
Writing code is not hard. Knowing when to stop is.
PS: While I use Brother's device as an example, most other devices make the same unnecessary check.