write doesn't return error for out of paper

I expected that if I attempted to write to a printer without paper in it (e.g. it just ran out of paper), that I would get an error from the write command.

In the below code, no error is logged.  If I set a breakpoint, I am able to verify that writeError is nil.


      let zebraConnection = MfiBtPrinterConnection(serialNumber: serialNumber)

      DispatchQueue.global(qos: .utility).async(execute: {

        if (zebraConnection?.open())! {




          var writeError: NSError?

          zebraConnection?.write(printReceipt.data(using: String.Encoding.utf8), error: &writeError)

          if writeError != nil{

            DDLogError("Print to zebra errored with error: \(writeError?.localizedDescription)")





iMZ220 with firmware V73.20.01Z

link-OS v1.4.957 for iOS


What is wrong with my approach?