Not sure if this is a typo in the function comments or a small bug, but thought you'd probably want to address it either way. I'm on the most recent NRF5-SDK (12.2.0) and it's also present in the next alpha. The issue lies with the function "nrf_esb_write_payload".
On line 311 of nrf_esb.h it states the following:
@retval NRF_ERROR_NOT_SUPPORTED If @p p_payload->noack was false, but selective acknowledgment is not enabled.
On line 980 of nrf_esb.c it states the following:
if (m_config_local.mode == NRF_ESB_MODE_PTX &&
p_payload->noack && !m_config_local.selective_auto_ack )
{
return NRF_ERROR_NOT_SUPPORTED;
}
Basically, the function comments say the NRF_ERROR_NOT_SUPPORTED retval occurs when noack is false, whereas the code requires noack to be true.