The documentation for this function states the following:
This function initiates or resumes a Primary Service discovery procedure, starting from the supplied handle. If the last service has not been reached, this function must be called again with an updated start handle value to continue the search.
But it does not state what return value corresponds to the case where the last service has not been reached. The return values are describe like this:
NRF_SUCCESS Successfully started or resumed the Primary Service Discovery procedure.
BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
NRF_ERROR_INVALID_STATE Invalid Connection State.
NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
NRF_ERROR_BUSY Client procedure already in progress.
None of these looks to indicate that there are more services to be discovered. What will the function return in that case?