BLE Connection Sync - Why the need for the peripheral to ASSERT?

in this example:

https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/samples/bluetooth/conn_time_sync/README.html

the peripheral has this assert statement when it receives a trigger time

__ASSERT_NO_MSG(params->trigger_time_us_central_clock >
                params->anchor_point_us_central_clock);

        if (!atomic_test_and_set_bit(&last_timed_action_in_use, 0)) {
            memcpy(&last_timed_action, params, sizeof(*params));
            atomic_clear_bit(&last_timed_action_in_use, 0);
        }

It's not clear to me why this is needed? What would cause this? latency issues from the central?

Related