MESH Downlink: Handle mesh event error: Tx Ack error: TOO_EARLY

Hi,

Now I’m trying to test the downlink via the MESH topology(one hop).

Chirpstack Version:

chirpstack-concentratord: 4.4.2
chirpstack-gateway-mesh: 4.0.0
chirpstack-mqtt-forwarder: 4.3.1
chirpstack: 4.9.0

[Topology]

Sensor )))) Relay Gateway  -------  Border Gateway ----ChirpStack LNS

*Border Gateway in the shielding box

Currently I use the ABP node with the RX Delay=5 to trigger the downlink process.
I always got the “Handle mesh event error: Tx Ack error: TOO_EARLY” error message.

Relay Mesh Gateway(chirpstack_gateway_mesh)

2024-09-10T03:03:43.902Z INFO  [chirpstack_gateway_mesh::backend] Frame received - [uplink_id: 3248944407, freq: 905900000, rssi: -105, snr: 3.75, mod: [LORA - sf: 10, bw: 125000]]
2024-09-10T03:03:43.902Z INFO  [chirpstack_gateway_mesh::mesh] Relaying uplink LoRa frame, uplink_id: 3248944407, downlink_id: 2896982683, mesh_packet: [Uplink hop_count: 1, uplink_id: 13, relay_id: 7de9e607, mic: 625c598a]
2024-09-10T03:03:43.902Z INFO  [chirpstack_gateway_mesh::backend] Sending mesh frame - [downlink_id: 2896982683 - [freq: 905700000, power: 20, mod: [LORA - sf: 7, bw: 125000], timing: [IMMEDIATELY]]]
2024-09-10T03:03:43.903Z DEBUG [chirpstack_gateway_mesh::backend] Sending command to socket, command: down, payload: 189be5b1e50a2a3f0a23e000d06903127de9e60740090924208004008803d5c19dd92b2f3207c202a0625c598a1a1808a0c5efaf0310141a0a1a0808c8d0071007280132020a00
2024-09-10T03:03:43.903Z INFO  [chirpstack_gateway_mesh::backend] Enqueue acknowledged, downlink_id: 2896982683
2024-09-10T03:03:50.518Z DEBUG [chirpstack_gateway_mesh::backend] Discarding proprietary uplink, uplink_id: 1524477267
2024-09-10T03:03:50.519Z INFO  [chirpstack_gateway_mesh::backend] Mesh frame received - [uplink_id: 1524477267, freq: 906100000, rssi: -37, snr: 11, mod: [LORA - sf: 7, bw: 125000]]
2024-09-10T03:03:50.519Z INFO  [chirpstack_gateway_mesh::mesh] Unwrapping relayed downlink, downlink_id: 1818922278, mesh_packet: [Downlink hop_count: 1, uplink_id: 13, relay_id: 7de9e607, mic: e5d77fa7]
2024-09-10T03:03:50.519Z INFO  [chirpstack_gateway_mesh::backend] Sending downlink frame - [downlink_id: 1818922278 - [freq: 924500000, power: 21, mod: [LORA - sf: 10, bw: 500000], timing: [DELAY: 5]]
2024-09-10T03:03:50.520Z DEBUG [chirpstack_gateway_mesh::backend] Sending command to socket, command: down, payload: 18a69aaae3062a3e0a1660090924208a010003300400710330ff0011ff02a64c1a2408a080ebb80310151a0c1a0a08a0c21e100a20012801320612040a0208053a04466a68ec3a1030303030346362613764653965363037
2024-09-10T03:03:50.522Z ERROR [chirpstack_gateway_mesh::backend] Handle mesh event error: Tx Ack error: TOO_EARLY

Relay Mesh Gateway(chirpstack_concentratord)

2024-09-10T03:03:43.902Z DEBUG [chirpstack_concentratord_sx1301::wrapper] Could not get GPS time, uplink_id: 3248944407, error: gps_ref_valid = false
2024-09-10T03:03:43.902Z DEBUG [chirpstack_concentratord_sx1301::wrapper] Could not get GPS epoch, uplink_id: 3248944407, error: gps_ref_valid = false
2024-09-10T03:03:43.902Z INFO  [chirpstack_concentratord_sx1301::handler::uplink] Frame received, uplink_id: 3248944407, count_us: 1181378796, freq: 905900000, bw: 125000, mod: LoRa, dr: SF10
2024-09-10T03:03:43.903Z INFO  [libconcentratord::jitqueue] Enqueueing immediate packet, downlink_id: 2896982683, current_counter_us: 1181390410
2024-09-10T03:03:43.903Z DEBUG [libconcentratord::jitqueue] Packet enqueued, downlink_id: 2896982683, count_us: 1182390410
INFO: tx_start_delay=1493 (1493.562500) - (1497, bw_delay=1.500000, notch_delay=1.937500)
2024-09-10T03:03:44.871Z INFO  [chirpstack_concentratord_sx1301::handler::jit] Scheduled packet for TX, downlink_id: 2896982683, count_us: 1182390410, freq: 905700000, bw: 125000, mod: LoRa, dr: SF7
2024-09-10T03:03:50.517Z DEBUG [chirpstack_concentratord_sx1301::wrapper] Could not get GPS time, uplink_id: 1524477267, error: gps_ref_valid = false
2024-09-10T03:03:50.517Z DEBUG [chirpstack_concentratord_sx1301::wrapper] Could not get GPS epoch, uplink_id: 1524477267, error: gps_ref_valid = false
2024-09-10T03:03:50.517Z INFO  [chirpstack_concentratord_sx1301::handler::uplink] Frame received, uplink_id: 1524477267, count_us: 1187997083, freq: 906100000, bw: 125000, mod: LoRa, dr: SF7
2024-09-10T03:03:50.521Z INFO  [libconcentratord::jitqueue] Enqueueing timestamped packet, downlink_id: 1818922278, counter_us: 1186378796, current_counter_us: 1188008032
2024-09-10T03:03:50.521Z WARN  [libconcentratord::jitqueue] Too early to enqueue packet, downlink_id: 1818922278, counter_us: 1186378796, current_counter_us: 1188008032

Is there any way to avoid the “TOO_EARLY” status?

Thanks.

On what hardware are you running the Concentratord + ChirpStack Gateway Mesh services? And what is the CPU load?

Hi Brocaar,

Thanks for your reply. The hardware chip is the RK3188 platform. And the CPU load is low. (load average: 0.61, 0.59, 0.56)

BTW, I run the test again. Now it works. I modified the mesh channel with DR4(906.2 SF8BW500K) channel. And modified the rx1_delay(5s) parameter in the region_us915_2.toml directly.

The OTAA join-accept downlink and the ABP downlink both work well (10/10).
I’ll do the more test later.