POST /api/v2/flows/executions returning 400 Bad Request with 'Invalid flowId' despite valid UUID

I’m trying to trigger an Architect flow programmatically from a Node.js service. The flow ID is a1b2c3d4-e5f6-7890-abcd-ef1234567890, which definitely exists and is published. When I hit POST /api/v2/flows/executions, I get a 400 Bad Request.

Here’s the payload:

{
 "flowId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
 "inputs": {
 "userId": "12345"
 }
}

I’ve checked the token scopes. It has flow:write and flow:read. I even tried adding conversation:write just in case, but no change. The error response body is sparse:

{
 "errors": [
 {
 "code": "invalid_flowId",
 "message": "The specified flow ID is not valid."
 }
 ]
}

I’ve verified the org ID matches the token’s org. I can see the flow in the UI. I’ve tried copying the ID directly from the URL in the Architect console. Nothing works. Is there a specific permission I’m missing that would cause this validation error? Or is there a known issue with certain flow types not being triggerable via this endpoint?