Data Action POST failing with 400 - INVALID_CONTEXT_DATA

hey all

quick q - anyone else running into this with DATA ACTIONS? we’ve got a flow that’s supposed to POST to a custom endpoint. it works fine in architect test mode, but when it hits production it’s just… not.

the error is a 400 BAD_REQUEST with this message: INVALID_CONTEXT_DATA - The data provided in the request does not conform to the expected format. it’s super vague.

we’re using the latest sdk (nodejs v9.0.0) and hitting /api/v2/platform/dataactions/{dataActionId}/execute. the DATA_ACTION_CONFIGURATION is pretty basic - just a simple json payload with a couple strings.

here’s the relevant bit of code:

const axios = require('axios');
const dataActionId = 'a1b2c3d4-e5f6-7890-1234-567890abcdef'; // obviously not the real id
const gcToken = process.env.GENESYS_CLOUD_TOKEN;

axios.post('/api/v2/platform/dataactions/' + dataActionId + '/execute', {
 "data": {
 "CUSTOMER_NAME": "john doe",
 "ACCOUNT_NUMBER": "1234567890"
 }
}, {
 headers: {
 'authorization': 'bearer ' + gcToken
 }
})
.then(response => {
 console.log(response.data);
})
.catch(error => {
 console.error(error.response.data);
});

i’ve checked and double-checked the payload format. it matches the DATA_ACTION_CONFIGURATION exactly. no extra spaces, no weird characters. the token is valid too - i’ve used it for other api calls without issues.

it’s like something’s happening before the request even hits my endpoint. the architect flow has a LOG statement right before the DATA ACTION step and it logs the payload just fine, so the payload’s correct there. not 100% sure but it feels like a GC thing. maybe something to do with the DATA_ACTION_CONFIGURATION being evaluated differently in production vs test?

also, the ROUTING_CONFIGURATION is set to ‘always execute’ - it shouldn’t be conditional or anything. it’s just… weird. anyone seen this before?