Not sure where you output the error code in your sketch as I can't see code to generate the output below.
in any case, did you look up these error codes? There is a SDErrorCodes example in SDFat that lists all the error. Mine says that 0x1D is as listed below, but your version's could be different.
0X1D,SD_CARD_ERROR_READ_TIMEOUT - Read data timeout
I did figure out that the error codes are written somewhere, and that this error code means "read error". So I tried several things, first changing the read timeout from 300 to 3000, that didn't help.
Then I tried re-opening and/or re-reading the file in the loop, it doesn't work either and even after a file.close() it can't do file.open() on that same file anymore.
I tried adding a delay(1000) and re-trying to either read from the same file, or closing the file and opening a new one. Again, with no success.
Today I bought a new SD card (Samsung 32GB) and it works fine. So my guess is that the SanDisk 8GB card is faulty somehow and fails reading more than 4k bytes. It does work fine with the computer, so still no idea what might be causing this.
Samsung cards are great but sometimes you get a counterfeit card. These sometimes work on PCs and phones which use the 4-bit SDIO bus but fail with the SPI interface.