I have an old, no very old, flatbed scanner, a Canon Canoscan liDE 25.  It used to work, so why doesn't it any more?  It should be fully supported under the amazing body of work that is the SANE project - Scanner Access Now Easy.  The annoying thing was that, as the mood seemed to take it, it would scan correctly.

After much internet searching, which seemed to suggest trouble with USB 3.0 ports, the need to use a hardware USB 2.0 port, the possibility it did not work under 64-bit Linuxes, and a load of other suggestions, the one that should have been obvious turned out to be effective.  The scanner was simply asleep.  I can't find the little snippet in a forum that made this suggestion now, to attribute the cure to the helpful contributor, but like many laptops, my machine runs tlp to save power.  This utility puts the USB system to sleep whenever it can.  I had run into similar issues in the past with USB mice and keyboards.  You have to blacklist the specific USB peripheral in the tlp configuration file to prevent it from having a little zizz.  Find the USB ID that corresponds to the device by running the utility lsusb, which lists the USB peripherals and ports, and includes the device ID in the format set out below; it's quite straight forward.

In this case, the cure was to edit the file /etc/default/tlp and add

## Canon LiDE25
USB_BLACKLIST="04a9:2220"

A restart of tlp and all was well.  The old scanner is now reliable once again.