Still having issues with "WITH_ACK" flag on particle.publish()

electron
Tags: #<Tag:0x00007fe2206a86f0>

#1

Moving this to a new thread since it seems like a different issue than the ones that are currently open.

On particle.publish() ACK returns false even though the publish goes through. This happens regularly and is easily repeatable.

Did a search on GitHub issues and it looks like they have all been closed except this one. https://github.com/particle-iot/device-os/issues/1679. This seems to be a bit different, though I can’t confirm.

Also read through https://github.com/rickkas7/particle-publish-blocking from @rickkas7
Not seeing anything that should cause this behavior.

Running 1.2.1 on Electron with SYSTEM_MODE(SEMI_AUTOMATIC); SYSTEM_THREAD(ENABLED);

Using a regular bool to make sure it blocks until ACK is received. In this particular example, the publish happened successfully but returned false.

bool success;
    success = Particle.publish("telemetry", json.getJson(), PRIVATE, WITH_ACK);
    if (!success) {
      appLog.warn("Telemetry did not send successfully.");
    } else {
      appLog.trace("Telemetry sent successfully.");
    }

0000017291 [comm.dtls] INFO: session cmd (CLS,DIS,MOV,LOD,SAV): 4
0000017291 [comm.protocol] TRACE: Reply recieved: type=2, code=0
0000017293 [comm.protocol] INFO: message id 4070 complete with code 0.00
0000017293 [comm.protocol] INFO: rcv’d message type=13
0000017443 [comm.protocol] INFO: Posting ‘M’ describe message
0000017597 [comm.protocol] INFO: rcv’d message type=1
0000022643 [comm.protocol] TRACE: Reply recieved: type=2, code=0
0000022643 [comm.protocol] INFO: message id 4074 complete with code 0.00
0000022645 [comm.protocol] INFO: rcv’d message type=13
0000023272 [comm.protocol] TRACE: Reply recieved: type=2, code=0
0000023272 [comm.protocol] INFO: message id 4073 complete with code 0.00
0000023274 [comm.protocol] INFO: rcv’d message type=13
0000032250 [comm.protocol] TRACE: Reply recieved: type=2, code=69
0000032250 [comm.protocol] INFO: message id 4076 complete with code 2.05
0000032252 [comm.protocol] INFO: Received TIME response: 1575147734
0000032252 [comm.protocol] INFO: rcv’d message type=12
0000032607 [comm.protocol] TRACE: Reply recieved: type=2, code=0
0000032607 [comm.protocol] INFO: message id 4071 complete with code 0.00
0000032609 [comm.protocol] INFO: rcv’d message type=13
0000033889 [comm.protocol] TRACE: Reply recieved: type=2, code=0
0000033889 [comm.protocol] INFO: message id 4072 complete with code 0.00
0000033891 [comm.protocol] INFO: rcv’d message type=13
0000035109 [comm.protocol] TRACE: Reply recieved: type=2, code=0
0000035109 [comm.protocol] INFO: message id 4075 complete with code 0.00
0000035109 [comm.protocol] INFO: rcv’d message type=13
0000036240 [comm.protocol] TRACE: Reply recieved: type=2, code=128
0000036240 [comm.protocol] INFO: message id 4077 complete with code 4.00
0000036240 [comm.protocol] INFO: rcv’d message type=15
0000039241 [app] WARN: Telemetry did not send successfully.

It looks like

rcv’d message type=15

indicates an “error” but I haven’t been able to get any helpful debug information on it.


#2

Hi @dcliff9 - would you mind sending me your Device ID and some timestamps of missing ACKs and I’ll take a peek in our backend?