We’re trying to automate the onboarding process for a new batch of agents by pushing their skill proficiencies directly through the REST API. It works fine when I do it one by one in the UI, but the moment I hit the bulk endpoint with more than one record, it bombs out.
Here is the payload I’m sending to POST /api/v2/users/skills/bulk-update:
[
{
"userId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"skills": [
{
"skillId": "skill-123",
"proficiency": "HIGH"
}
]
},
{
"userId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"skills": [
{
"skillId": "skill-456",
"proficiency": "MEDIUM"
}
]
}
]
The response comes back immediately with a 409 Conflict. The error message is pretty vague:
{
"message": "One or more items in the batch failed validation.",
"errors": [
{
"code": "VALIDATION_ERROR",
"message": "User profile lock conflict"
}
]
}
I’ve checked the following:
- Both user IDs exist and are active.
- The skill IDs are correct and belong to the same skill group.
- I’m using an OAuth token with the
user:writeandskill:writescopes. - I’ve tried sending them individually in separate requests, which works, but that’s not scalable for 500 agents.
Is there a rate limit or a specific locking mechanism I’m missing? I’ve read the docs on bulk operations but nothing mentions this specific conflict error for skill updates. Any ideas on how to bypass this or what exactly is causing the lock?