Here's my situation:
1. I'm developing in Xamarin Android, with a Nokia 8 running Android 8.1.0 and printing to a Zebra ZQ520 using the Zebra SDK.
2. I'm connecting over a BluetoothConnectionInsecure connection.
3. The first few occasions print works fine.
4. Print then fails with the error "read failed, socket might closed or timeout, read ret: -1" and I can no longer print.
Code example below. Sometimes I send a signature and I also have retry attempts (they haven't worked). !
I think you are running into a timing issue. We see this sometimes with printing image files.
Try adding the code for checking the status after printing: Best Practices For Printing
That should tell you if the printer is really done with the print job before you close the connection.