msgraph-sdk-powershell icon indicating copy to clipboard operation
msgraph-sdk-powershell copied to clipboard

New-MgExternalConnectionItem returns 404 errors

Open westleyMS opened this issue 5 months ago • 1 comments

Describe the bug

I am trying to create new external connection items for an external connector, and I get a 404 not-found error message in response. Here is the command I use- $newItem = New-MgExternalConnectionItem -ExternalConnectionId "samplecon" -id $id -Properties $props -Content $content -Acl $acl

A fiddler trace of the above call shows this- POST https://graph.microsoft.com/v1.0/external/connections/samplecon/items

The body is this- { "id": "R06", "acl": [ { "accessType": "grant", "type": "everyoneExceptGuests", "value": "56713e33-e7c4-4ce4-ac45-a4ae33ab87b7" } ], "properties": { "title": "Adding Test Items", "language": "hu-HU", "floor": [ "London_B1" ], "[email protected]": "Collection(String)", "recordId": "R06" }, "content": { "type": "text", "value": "A new item R06" } }

Expected behavior

I expect the new-item to be created and stored in the $newItem variable.

How to reproduce

  1. connect with MGGraph- Connect-MgGraph -ClientId "{client_id}" -TenantId "{tenant}.onmicrosoft.com" -certificate $x509Cert

#Make sure the app has ExternalConnection.ReadWrite.OwnedBy | ExternalConnection.ReadWrite.All and ExternalItem.ReadWrite.OwnedBy | ExternalItem.ReadWrite.All

  1. create the external connection $newConnector = New-MgExternalConnection -BodyParameter $connector

  2. add the schema for the external connection $schemaUpdateResp = Update-MgExternalConnectionSchema -ExternalConnectionId $newConnector.Id -BodyParameter $schema

  3. add an external connection item to the connection $newItem = New-MgExternalConnectionItem -ExternalConnectionId "samplecon" -id $id -Properties $props -Content $content -Acl $acl

SDK Version

2.27.0 Microsoft.Graph.Search

Latest version known to work for scenario above?

?

Known Workarounds

The $id, $acl, and $props are all good because if I use fiddler to resend the request, but modify it to use the verb PUT and add the ID to the URL, it works. This is how the Graph REST API has in the documentation- https://learn.microsoft.com/en-us/graph/connecting-external-content-manage-items#add-an-item

Debug output

Click to expand log ```
</details>


### Configuration

_No response_

### Other information

_No response_

westleyMS avatar Aug 13 '25 00:08 westleyMS

This might be an issue with our metadata resulting in a POST as that's the verb for a create. But as this is noted to work as a PUT request which is usually for an update but appears to be working as an upsert

gavinbarron avatar Oct 22 '25 17:10 gavinbarron