I've spent a bit more time on this today. I used the Power Apps monitor to take a look at what is going on under the hood and found this in the Properties > Request tab of the InvokeHttp operation:
"body": {
"method": "POST",
"url": "https://graph.microsoft.com/v1.0/search/query",
"headers": {
"Content-Type": "application/json"
},
"body": null
}
}
I'm assuming I'm getting a bad request error as the body is null. Any ideas as to why it is not passing through the body?
In case it helps, here's what is returned in Monitor for the InvokeHttp > Details tab:
{
"status": 400,
"duration": 70.29,
"dataSource": "HTTPwithMicrosoftEntraID(preauthorized)",
"responseSize": 207,
"controlName": "btnSearch",
"propertyName": "OnSelect",
"nodeId": 26,
"formulaData": {
"script": "UpdateContext({locSearchPerformed: false});\r\n\r\n// Construct the request body JSON\r\nSet(varRequestBody, \"{\r\n \"\"requests\"\": [\r\n {\r\n \"\"entityTypes\"\": [\r\n \"\"driveItem\"\"\r\n ],\r\n \"\"query\"\": {\r\n \"\"queryString\"\": \"\"title:\\\"\"\"& txtSearchbox.Text &\"\\\"\" AND isDocument=false path:\\\"\"https://xxxx.sharepoint.com/sites/xxxx/Shared%20Documents/General/xxxx/xxxx\\\"\" OR path:\\\"\"https://xxxx.sharepoint.com/sites/xxxx/Shared%20Documents/General/xxxx/xxxx\\\"\" OR path:\\\"\"https://xxxx.sharepoint.com/sites/xxxx/Shared%20Documents/General/xxxx/xxxx\\\"\" OR path:\\\"\"https://xxxx.sharepoint.com/sites/xxxx/Shared%20Documents/General/xxxx/xxxx\\\"\" OR path:\\\"\"https://xxxx.sharepoint.com/sites/xxxx/Shared%20Documents/General/xxxx/xxxx\\\"\" OR path:\\\"\"https://xxxx.sharepoint.com/sites/xxxx/Shared%20Documents/General/xxxx/xxxx\\\"\" OR path:\\\"\"https://xxxx.sharepoint.com/sites/xxxx/Shared%20Documents/General/xxxx/xxxx\\\"\"\"\"\r\n },\r\n \"\"fields\"\": [\r\n \"\"title\"\",\r\n \"\"url\"\"\r\n ]\r\n }\r\n ]\r\n}\");\r\n\r\n// Use HTTP with Microsoft Entra ID (preauthorized) connector\r\nSet(searchResults, 'HTTPwithMicrosoftEntraID(preauthorized)'.InvokeHttp(\r\n \"POST\",\r\n \"https://graph.microsoft.com/v1.0/search/query\",\r\n {\r\n headers: Table(\r\n {key: \"Content-Type\", value: \"application/json\"}\r\n ),\r\n body: varRequestBody\r\n }\r\n));\r\n\r\nUpdateContext({locSearchPerformed: true});\r\n",
"spanStart": 1353,
"spanEnd": 1619
},
"data": {
"context": {
"entityName": "btnSearch",
"propertyName": "OnSelect",
"id": 11501,
"nodeId": 26,
"diagnosticContext": {
"span": {
"start": 1353,
"end": 1619
},
"dataOperation": {
"protocol": "rest",
"operation": "InvokeHttp",
"dataSource": "HTTPwithMicrosoftEntraID(preauthorized)"
},
"formula": "UpdateContext({locSearchPerformed: false});\r\n\r\n// Construct the request body JSON\r\nSet(varRequestBody, \"{\r\n \"\"requests\"\": [\r\n {\r\n \"\"entityTypes\"\": [\r\n \"\"driveItem\"\"\r\n ],\r\n \"\"query\"\": {\r\n \"\"queryString\"\": \"\"title:\\\"\"\"& txtSearchbox.Text &\"\\\"\" AND isDocument=false path:\\\"\"https://xxxx.sharepoint.com/sites/xxxx/Shared%20Documents/General/xxxx/xxxx\\\"\" OR path:\\\"\"https://xxxx.sharepoint.com/sites/xxxx/Shared%20Documents/General/xxxx/xxxx\\\"\" OR path:\\\"\"https://xxxx.sharepoint.com/sites/xxxx/Shared%20Documents/General/xxxx/xxxx\\\"\" OR path:\\\"\"https://xxxx.sharepoint.com/sites/xxxx/Shared%20Documents/General/xxxx/xxxx\\\"\" OR path:\\\"\"https://xxxx.sharepoint.com/sites/xxxx/Shared%20Documents/General/xxxx/xxxx\\\"\" OR path:\\\"\"https://xxxx.sharepoint.com/sites/xxxx/Shared%20Documents/General/xxxx/xxxx\\\"\" OR path:\\\"\"https://xxxx.sharepoint.com/sites/xxxx/Shared%20Documents/General/xxxx/xxxx\\\"\"\"\"\r\n },\r\n \"\"fields\"\": [\r\n \"\"title\"\",\r\n \"\"url\"\"\r\n ]\r\n }\r\n ]\r\n}\");\r\n\r\n// Use HTTP with Microsoft Entra ID (preauthorized) connector\r\nSet(searchResults, 'HTTPwithMicrosoftEntraID(preauthorized)'.InvokeHttp(\r\n \"POST\",\r\n \"https://graph.microsoft.com/v1.0/search/query\",\r\n {\r\n headers: Table(\r\n {key: \"Content-Type\", value: \"application/json\"}\r\n ),\r\n body: varRequestBody\r\n }\r\n));\r\n\r\nUpdateContext({locSearchPerformed: true});\r\n"
}
},
"request": {
"url": "https://uk-001.azure-apim.net/apim/webcontents/xxxx/codeless/InvokeHttp",
"method": "POST",
"headers": {
"x-ms-user-agent": "PowerApps/3.24051.23 (Web AuthoringTool; AppName=xxxx)",
"x-ms-client-session-id": "xxxx",
"x-ms-client-request-id": "xxxx",
"x-ms-client-environment-id": "/providers/Microsoft.PowerApps/environments/xxxx",
"x-ms-client-app-id": "/providers/Microsoft.PowerApps/apps/xxxx",
"x-ms-client-tenant-id": "xxxx",
"x-ms-client-object-id": "xxxx",
"Accept-Language": "en-GB",
"Accept": "*/*",
"Cache-Control": "no-cache, no-store",
"Content-Type": "application/json",
"x-ms-request-method": "POST",
"x-ms-request-url": "/apim/webcontents/xxxx/codeless/InvokeHttp"
},
"body": {
"method": "POST",
"url": "https://graph.microsoft.com/v1.0/search/query",
"headers": {
"Content-Type": "application/json"
},
"body": null
}
},
"response": {
"duration": 70.29,
"size": 207,
"status": 400,
"headers": {
"Cache-Control": "no-store, no-cache",
"client-request-id": "xxxx",
"content-encoding": "gzip",
"Content-Type": "application/json",
"Date": "Tue, 21 May 2024 23:41:01 GMT",
"Request-Id": "xxxx",
"strict-transport-security": "max-age=31536000",
"timing-allow-origin": "*",
"x-ms-ags-diagnostic": {
"ServerInfo": {
"DataCenter": "UK South",
"Slice": "E",
"Ring": 5,
"ScaleUnit": "003",
"RoleInstance": "xxxx"
}
},
"x-ms-apihub-cached-response": true,
"x-ms-apihub-obo": true,
"x-ms-environment-id": "xxxx",
"x-ms-client-request-id": "xxxx"
},
"body": {
"error": {
"code": "BadRequest",
"message": "The call failed, please try again.",
"target": ""
},
"Instrumentation": {
"TraceId": "xxxx"
}
},
"responseType": "text"
},
"startTime": 5365934.9,
"name": "https://uk-001.azure-apim.net/invoke",
"fetchStart": 5365935.1,
"domainLookupStart": 5365935.1,
"domainLookupEnd": 5365935.1,
"connectStart": 5365935.1,
"connectEnd": 5365935.1,
"secureConnectionStart": 5365935.1,
"requestStart": 5365936.1,
"responseStart": 5366002.8,
"responseEnd": 5366003.7,
"transferSize": 470,
"nextHopProtocol": "h2"
}
}