             // Write out unadjusted JSON or encrypted frame on secondary radio.
             // Assumes that framing (or not) of primary and secondary radios is the same (usually: both framed).
             SecondaryRadio.queueToSend(realTXFrameStart, wrote);
-        }
-        if(!sendingJSONFailed) {
             // Send directly to the primary radio...
-            if(!PrimaryRadio.queueToSend(realTXFrameStart, wrote)) { sendingJSONFailed = true; }
+            PrimaryRadio.queueToSend(realTXFrameStart, wrote);
         }
     }
     if(neededWaking) { OTV0P2BASE::flushSerialProductive(); OTV0P2BASE::powerDownSerial(); }

        PCICR = 1 ;//| 4;  // 0x1 enables PB/PCMSK0. 0x4 enables PD/PCMSK2.
        PCMSK0 = RFM23B_INT_MASK;
    }
    PrimaryRadio.listen(true);
    // Do early 'wake-up' stats transmission if possible
    // when everything else is set up and ready and allowed (TODO-636)

        // then build encrypted frame from raw JSON.
        if(!sendingJSONFailed) {
            // Explicit-workspace version of encryption.
            OTV0P2BASE::ScratchSpaceL subScratch(sW, TX_ScratchSpaceNeeded);
            const OTRadioLink::SimpleSecureFrame32or0BodyTXBase::fixed32BTextSize12BNonce16BTagSimpleEncWithLWorkspace_ptr_t eW = OTAESGCM::fixed32BTextSize12BNonce16BTagSimpleEnc_DEFAULT_WITH_LWORKSPACE;

            constexpr uint8_t txIDLen = OTRadioLink::ENC_BODY_DEFAULT_ID_BYTES;
            // When sending on a channel with framing, do not explicitly send the frame length byte.
            constexpr uint8_t offset = 1;
