Мне потребовалось два дня, чтобы найти способ решить эту проблему.
В моем случае пользователь веб-службы имел все необходимые привилегии для регистрации пользователя. Смущает то, что один и тот же пользователь веб-службы смог создать нового пользователя Moodle через API.
После проверки всех этих прав, относящихся к конкретной роли («разрешить назначение ролей», «разрешить переопределение ролей», «разрешить»). переключение ролей ") несколько раз я обнаружил одну уместную подсказку в уроке: пользователь, который хочет записать другого пользователя на курс, должен быть участником этого курса (?!?).
Поэтому я поместил свой вебПользователь сервиса к каждому курсу у меня и дал ему дополнительно «тренерскую» роль. И теперь регистрация работает даже через API.
Надеюсь, это поможет.