@jeekajoo, seu bug é marcado como "corrigido" no link (embora não seja), então acho que ninguém está prestando atenção.
A única maneira que encontrei para evitar erros é redefinir (desconectar + reconectar) o scanner entre cada sessão de varredura. Mas em vez de fazê-lo fisicamente, é possível usar o "usbreset" descrito aqui Como você redefine um dispositivo USB a partir da linha de comando? É muito rápido, quase não diminui o processo de varredura. Aqui está um pequeno script que escrevi para digitalizar rapidamente várias páginas em um PDF
#!/bin/bash
#let's store the usb ID "BUS" and "DEVICE" of our scanner (04a9:1909 is the usb ID of the Canon Lide 110 when executing lsusb)
canon_bus=$(lsusb | grep '04a9:1909' | cut -c 5-7)
canon_device=$(lsusb | grep '04a9:1909' | cut -c 16-18)
#let's start the scan in batch mode with a resolution of 150 dpi. --device-name is not mandatory but it starts faster when indicated
scanimage -p -b --batch-prompt --device-name=genesys:libusb:$canon_bus:$canon_device --resolution 150 --mode color
#let's convert all *.pnm generated files into pdf
mogrify -format pdf -page a4 -- *.pnm && rm *.pnm
#let's reset the scanner so it is available next time we want to use it. The "usbreset" binary must be compiled from https://sobrelinux.info/questions/254/how-do-you-reset-a-usb-device-from-the-command-line"ls -v" command to merge them in a numerical order (otherwise the page 10 would be before the page 2). Thank you "Ymonad" at http://stackoverflow.com/questions/23643274/linux-command-merge-pdf-files-with-numerical-sort for this solution!
ls -v *.pdf | bash -c 'IFS=$'"'"'\n'"'"' read -d "" -ra x;pdfunite "${x[@]}" temp_merge' && rm *.pdf
else
mv *.pdf temp_merge
fi
#let's compress the merged pdf
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/default -dNOPAUSE -dBATCH -sPAPERSIZE=a4 -sOutputFile=scan.pdf temp_merge && rm temp_merge
Espero que ajude os outros!