Assertion (sched_ctrl->available_dl_harq.head >= 0) failed! (gNB)
This assertion happens when the UE does not decode UESS PDCCH. This can be triggered either by misconfiguration (using new !3055 (merged) with uess_agg_levels set to [0,0,0,0,0]) or this diff in the UE:
diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c b/openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
index debd5226be..4f7aa5b835 100644
--- a/openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
+++ b/openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
@@ -570,6 +570,7 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
config_dci_pdu(mac, dl_config, rnti_type, slot, pdcch_config->ra_SS);
}
} else if (mac->state == UE_CONNECTED) {
+ return;
for (int i = 0; i < pdcch_config->list_SS.count; i++) {
NR_SearchSpace_t *ss = pdcch_config->list_SS.array[i];
if (is_ss_monitor_occasion(frame, slot, slots_per_frame, ss))
All this diff does it it stops decoding PDCCH once UE received MSG4.
I think the issue is msg4 HARQ process handling, they are not cleaned up correctly.