POST /api/v2/flows/executions returning 400 Bad Request in Kotlin

Trying to kick off an Architect flow from our Kotlin service using POST /api/v2/flows/executions. The request body looks right based on the docs:

{
 "flowId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
 "executionType": "IMMEDIATE",
 "initialParameters": {
 "userId": "12345"
 }
}

Getting a 400 Bad Request with "code": "invalidRequest". I’ve double checked the flowId and the OAuth token is valid. What am I missing?