Some Clarity on MQTT Topics

Hi Everyone,

I need clarity on some of the MQTT topics exposed by the application server.

v3/{application id}/devices/{device id}/down/ack
v3/{application id}/devices/{device id}/down/nack
v3/{application id}/devices/{device id}/down/failed

  1. Does the network server retransmit the confirmed downlink message in case the message was not received by the end device, or is the duty of MQTT application to do the retransmission of the confirmed downlink message?

  2. When does …/down/nack get triggered or what is the difference between …/down/ack and …/down/nack?

  3. I guess the topic …/down/failed is called when the downlink message fails? If so, what are possible failures that could lead the application server to publish on this topic?

Thank You


actually both the topic format and message format are substantially ‘breaking changes’ v2 → v3. E.g. for basic data uplinks:

V2 topic:
<ttn app id>/devices/<ttn device id>/up

V3 topic:
v3/<ttn app id><at symbol>ttn/devices/<ttn device id>/up

V2 message key field jsonpaths:
<ttn device id> = .dev_id
<ttn app id> = .app_id
<payload> = .payload_raw

v3 message key field jsonpaths:
<ttn device id> = .end_device_ids.device_id
<ttn app id> = .end_device_ids.application_ids.application_id (not including the <at symbol>ttn in the topic)
<payload> = .uplink_message.frm_payload

Presumably these fundamental changes must be documented somewhere, and when I find that I’ll post it here (or anyone else?). Maybe I’ve misunderstood things and there’s no real ‘migration’ but it’s a “new network” so just read the docs and rebuild for it.

1 Like

I am using thethingsindustries website for identifying changes when moving to v3

1 Like

well… take something as fundamental as the name of the field containing the uplink data from your sensor. That changes from “payload_raw” in V2 to something else in V3.

A “migration document” (as opposed to “system documentation”) would mention that somewhere, so that’s the link I’m looking for.

1 Like

ah, totally agree.

Check out the bottom of this page, it should help you out (with the migration, not with the original question in this post):
Major Changes In The Things Stack | The Things Stack for LoRaWAN (