Phone sometimes skips function inside loop

Hi, I have a POS app that works with a thermal printer with the Bluetooth Serial plugin. When the order is too long, I split the invoice in chunks of 300 bits. On my phone it works well 100% of the time, but when I try to use a Huawei phone (the one that is being used in the store) it skips one or several iterations of the print call in the loop.

I don’t know it if is an async/await issue, or a Bluetooth communication issue. Anyway there are the 2 functions I use for printing.

async printTicket(order: Order, sale?: Sale) {
    let ticket: any[] = await this._printer.generateReceipt(order, sale);
    let chunks: any[] = await chunk(ticket, 300);
    return new Promise((res, rej) => {
      this._printer.getDefaultPrinter().then(async printer => {
        if (printer) {
          for (let index = 0; index < chunks.length; index++) {
            await this.sendToPrinter(chunks[index], index, chunks.length, printer.address);
            await this._misc.delay(100);
        } else {
          this._misc.presentSimpleAlert('Error', '', 'Impresora no seleccionada');
      }).catch(error => rej(error))

  async sendToPrinter(data, index, total, address) {
    return new Promise ((resolve, reject) => {
      const bt = this._printer.connectBT(address).subscribe(async _ => {
        this._misc.presentToast("Imprimiendo parte " + (index + 1) + ' de ' + total);
        await this._printer.writeData(data);
        this._printer.deviceDisconnected().then(res => {
          this._misc.presentToast("Dispositivo bluetooth desconectado");
        }).catch(err => reject(err));

Any help will be much appreciated.

EDIT: Also, I split the order into chunks because when the order is too long, some printers stop printing the invoice after 5 seconds or so…