Architect Loop block only processing first item from Data Action JSON array

I’m trying to iterate over a list of contact details returned from a Data Action in Architect, but the Loop block seems to skip everything after the first element.

The Data Action calls an internal endpoint and returns this payload:

{
 "status": 200,
 "data": [
 { "id": "101", "name": "Alice" },
 { "id": "102", "name": "Bob" }
 ]
}

I’ve mapped the return value to data.contactList. In the Loop configuration, I set the input to data.contactList and the index variable to loopIndex. The loop body is just a simple log statement to print data.contactList[loopIndex].name.

The trace shows the loop runs once for index 0, prints “Alice”, and then immediately exits. It never hits index 1. If I hardcode the array in a Data Action using a static JSON string, the loop works fine for all items. This only happens when the array comes from the external HTTP response.

Is there a specific way I need to parse the response body before feeding it into the Loop? I’ve tried using a Map block to convert the response to a string and then back to JSON, but that just breaks the type hinting. Here’s the relevant snippet of my Data Action config:

{
 "name": "GetContacts",
 "type": "REST",
 "method": "GET",
 "url": "https://internal-api/contacts",
 "headers": {
 "Authorization": "Bearer {{token}}"
 }
}

The return mapping is straightforward:
return.data.contactList = response.body.data

I’m using the latest Architect version. Anyone seen this behavior? The SDK docs for Client Apps mention explicit array iteration, but Architect feels more opaque here. I’m stuck on why it treats the external array as a single object after the first pass.