Data Action JSON parsing error when fetching Cognigy profile tokens via HTTP GET

I’m building a Data Action to pull profile tokens from NICE Cognigy before routing. The goal is to inject the trace context from OpenTelemetry into the Cognigy request headers so we can track latency. The Data Action uses a standard http.get call to our internal proxy, which forwards to Cognigy.

Here is the Data Action configuration for the input mapping:

{
 "inputs": {
 "traceparent": "{{traceparent}}",
 "userId": "{{contact.id}}"
 },
 "operation": "http.get",
 "parameters": {
 "url": "https://internal-proxy.example.com/cognigy/profile/{{userId}}",
 "headers": {
 "traceparent": "{{inputs.traceparent}}",
 "Content-Type": "application/json"
 }
 }
}

The response from the proxy is valid JSON:

{
 "status": "success",
 "data": {
 "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
 "expiry": 1715623400
 }
}

However, the Data Action fails with a generic parsing error in the Genesys Cloud UI. The error message is vague: Invalid JSON response from external service. I’ve verified the payload using Postman and the headers are correct. The Content-Type is set to application/json. I’ve also tried removing the traceparent header to rule out encoding issues, but the error persists.

Is there a specific constraint on the response body size or structure for Data Actions? Or is this a known issue with nested JSON objects in the response mapping? I’m using the latest version of the Genesys Cloud Platform SDK for Node.js to test the proxy endpoint directly, and it works fine there.

Here is the Node.js snippet I used to verify the proxy response:

const axios = require('axios');

async function testCognigy(userId) {
 try {
 const response = await axios.get(`https://internal-proxy.example.com/cognigy/profile/${userId}`, {
 headers: {
 'traceparent': '00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01'
 }
 });
 console.log(response.data);
 } catch (error) {
 console.error(error);
 }
}

testCognigy('user123');

The output is exactly what I expect. I’m stuck on why the Data Action rejects it.