If I read your second post correctly, then when you find a corrupt book on your device, then resending that book from calibre does not fix it even though the book can be opened in calibre. Is this right?
If so, then we are left with an uncomfortably large number of possible culprits.
- The book is not being sent properly from calibre. This can happen if calibre's temporary file system is full, or (shudder) if the calibre computer is failing.
- The book is not traversing the network correctly. Not sure why this would happen intermittently, and in any event calibre and CC would detect data being dropped or added during the transfer.
- CC is writing the wrong information. Again, not sure why this would happen intermittently, or why the behavior would change.
- The SD card is going bad. Data is corrupted either when written or read.
- The file system on the SD card is corrupt, so files written to the card are corrupted. This seems the most probable to me.
Resending the damaged book resulting in the same problem points first toward a damaged file system and second toward a failing SD card. The first possibility is especially true if the files are being reported as zero length. CC knows the length of the book it is receiving, so if the receive process finishes properly then CC received and wrote the correct amount of data. If it later is zero length then the SD card did that for you.
Regarding the second possibility: SD cards do wear out. A quality SD card should do "wear leveling", moving the data around on the SD card to avoid "bad spots", but even this will eventually fail. When they fail they give back bad data with no indication or warning.
Some inexpensive SD cards lie about their size, saying that they are larger than they really are, which causes no end of trouble. Is your SD card near full? Is it a quality brand name?
If I were you, I would:
- Put the SD card into a card reader and check its file system using a "real" computer. It could be that the app AParted (Sd card Partition) can do this for you, but as I have never tried it I cannot recommend it. If your device supports mounting the SD card as a disk over USB then you can probably do the file system check that way.
- While the SD card is in a reader and assuming the file system is OK, write a large file to the card then read it back. Do you get the same data back as you wrote?
- If you have another card, try using it to see if the problem goes away.
- Verify that the tmp folder on your machine running calibre is not running out of space.
Apologies for the stream of consciousness aspect of this reply, but unfortunately there isn't a definite answer to your problem.