I have a custom connector with a request having a JSON structure in the body with multiple elements (JIRA issues). All works well, except for a property that is a plain array of strings, like this:
"customfield_11800": [
"One tag",
"Another tag"
]
Swagger schema looks like this:
customfield_11800:
type: array
items: {type: string}
description: customfield_11800
But within my PowerApp, the data is listed as datatype text. When looking at the monitor, I see the following parsing error:
"data": {
"property": "customfield_11800",
"info": "JSON parsing error, expected 'string' but got 'array'.",
"issue": "This is more likely due to mismatch between metadata and actual data received. Please ensure your metadata and server response match."
Any workaround here? I am not able to change the endpoint.
Hi @poweractivate, thanks for a quick reply!
I am able to use the connector neatly in a gallery, populating rows with the other data from the JSON response. On the connector, I have an operation called GetIssues, returning an array of issues. Then each issue has fields, and inside fields I have properties like summary, id, versions and this customfield. Except for the custom field, I am able to populate the data into labels and such, works just great. I have pasted an obfuscated and trimmed down response at the end of this post, that shows the response as shown in Power Apps Monitor, for the successful network activity of GetIssues being called from the gallery component (items is configured as MyConnector.GetIssues().issues)
However, just after the successful log entry in Monitor comes a parsing error with these details:
{
"status": null,
"duration": null,
"dataSource": null,
"responseSize": null,
"controlName": null,
"propertyName": null,
"nodeId": null,
"formulaData": {
"script": "",
"spanStart": null,
"spanEnd": null
},
"data": {
"property": "customfield_11800",
"info": "JSON parsing error, expected 'string' but got 'array'.",
"issue": "This is more likely due to mismatch between metadata and actual data received. Please ensure your metadata and server response match."
}
}
And this is basically the bit I am struggling with.
For components, I use another gallery component to display it. For FixVersions, I use concat to convert the table into text for a label. So, both these arrays work fine, but the difference is that they are arrays of objects, while for customfield_11800 it is an array of strings. When trying to reach the property, I am using MyConnector.
Here is the response for GetIssues:
{
"duration": 280.36,
"size": 9137,
"status": 200,
"headers": {
"Cache-Control": "no-cache, no-store, no-transform",
"content-security-policy": "frame-ancestors 'self'",
"Content-Type": "application/json;charset=UTF-8",
"Date": "Sun, 06 Dec 2020 11:45:24 GMT",
"x-arequestid": "blablabla",
"x-asen": "blablabla",
"x-asessionid": "blablabla",
"x-ausername": "blablabla",
"x-content-type-options": "nosniff",
"x-frame-options": "SAMEORIGIN",
"x-ms-apihub-cached-response": true,
"x-seraph-loginreason": "OK",
"x-xss-protection": "1; mode=block"
},
"body": {
"expand": "schema,names",
"startAt": 0,
"maxResults": 500,
"total": 2,
"issues": [
{
"id": 1234,
"self": "https://myjiraserver.com/rest/api/2/issue/1234",
"key": "XYZ-2733",
"fields": {
"summary": "Some issue",
"components": [
{
"self": "https://myjiraserver.com/rest/api/2/component/123456",
"id": 123456,
"name": "Some component"
}
],
"customfield_11800": [
"One tag",
"Another tag"
],
"created": "2020-10-03T13:27:44.000+0000",
"description": "Some description",
"fixVersions": [
{
"self": "https://myjiraserver.com/rest/api/2/version/123",
"id": 123,
"description": "",
"name": 12,
"archived": false,
"released": false
}
]
}
},
{
"id": 1235,
"self": "https://myjiraserver.com/rest/api/2/issue/1235",
"key": "XYZ-2727",
"fields": {
"summary": "Another issue",
"components": [
{
"self": "https://myjiraserver.com/rest/api/2/component/123457",
"id": 123457,
"name": "Another component"
}
],
"customfield_11800": null,
"created": "2020-10-30T14:25:15.000+0000",
"description": "Yet another description",
"fixVersions": []
}
}
]
},
"responseType": "json"
}
What are you using for the Power App formula to reference:
customfield_11800
or in other words:
YourCustomConnectorDataSourceName.customfield_11800
Also, can you give an example of sample data (mock) regarding one or more records of:
customfield_11800
You gave the example as follows:
"customfield_11800": [
"One tag",
"Another tag"
]
Is the return of this really an "array like" thing of multiple items when calling from your formula in PowerApps? (e.g. when calling something like):
YourCustomConnectorDataSourceName.customfield_11800
Moreover can you test again by issuing POST request (or appropriate request) to the API from a test tool like Postman - are you sure the format is being returned as array of strings?
Then, please double check, that your Swagger definition completely matches this as well in all aspects including the parts you did not post here - and make sure that when you are using the formula, that it is matching your Postman test, in terms of the kind of data you are passing into the formula as well - so that the return value is similar to the one tested with. Check as well for any side effects of the API, such as if the API returns a different thing when some condition is met. For example, API returns an array of strings the first time, but on the second time, it returns something else, etc.
Also, make sure the API is returning the status code 200 as well on the test requests, verify for this as well.
Other than the above, there may be actually some mismatch between the OpenAPI definition Swagger you provided and what the API actually returns and the error message is not mistaken - or if not, some more details may be needed to better help you further.
WarrenBelz
791
Most Valuable Professional
MS.Ragavendar
410
mmbr1606
275
Super User 2025 Season 1