Please see the following parameter definitions in the function role_assign_parameters in /enrol/externallib.php:
'contextid' => new external_value(PARAM_NOTAGS, 'The context to assign the user into '),
'timestart' => new external_value(PARAM_EMAIL, 'A valid and unique email address', VALUE_DEFAULT, 0, NULL_NOT_ALLOWED),
'timeend' => new external_value(PARAM_SAFEDIR, 'Auth plugins include manual, ldap, imap, etc', VALUE_DEFAULT, 0, NULL_NOT_ALLOWED)
It seems to me these don't make any sense for the parameters they are for. I wonder if, perhaps, they were copy-and-pasted from another web service parameter definition and then never altered to the appropriate values. The above lines are from CVS head.
This is currently preventing any web service from enrolling users, which is very crucial for us.