MS Graph API: external items returns 500 error

Andrew Drain 0 Reputation points
2026-05-12T14:50:32.89+00:00

A GET to /external/connections/{connectionId}/items/{itemId} returns 500 for all items in Tenant A; but will work in Tenant B. These are using different Entra Apps but with the same permissions assigned.

Sample failure:

{
    "error": {
        "code": "GeneralException",
        "message": "There was an internal server error while processing the request.",
        "innerError": {
            "date": "2026-05-12T14:23:01",
            "request-id": "bd7bb8a6-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "client-request-id": "bd7bb8a6-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    }
}

Any ideas on the cause of this in Tenant A? This is a new error; these calls used to work just fine.

Microsoft Security | Microsoft Graph
0 comments No comments

1 answer

Sort by: Most helpful
  1. AI answer

    2026-05-12T14:50:44.7433333+00:00

    The 500 response is coming from the Microsoft Graph external items API itself and not from the app configuration. In this scenario, the app and permissions are already correct because:

    • GET /external/connections/{connectionId} and /schema return 200.
    • The Search API can successfully find and return the same externalItem objects.

    The documented behavior for GET /external/connections/{connectionId}/items/{externalItemId} is that it should return 200 OK with the externalItem when successful and does not support any query parameters. A 500 GeneralException indicates an internal service error in the external connectors pipeline for that tenant, not a caller error.

    Given that:

    • The same pattern works in Tenant B.
    • The same type of call used to work in Tenant A and now fails consistently for all items.

    this points to a tenant-specific backend issue or regression in the external connections service for Tenant A.

    Actionable steps:

    1. Confirm the request shape exactly matches the documented pattern:
      • GET https://graph.microsoft.com/v1.0/external/connections/{connectionId}/items/{externalItemId}
      • No query parameters.
      • Valid access token with one of: ExternalItem.ReadWrite.OwnedBy, ExternalItem.Read.All, or ExternalItem.ReadWrite.All (delegated or application as appropriate).
    2. Capture a few failing request IDs and timestamps (as in the sample) from Tenant A.
    3. Open a Microsoft support ticket for Microsoft Graph with those request IDs and specify that:
      • Search and connection/schema endpoints work.
      • Only GET /external/connections/{connectionId}/items/{externalItemId} returns 500 for all items in Tenant A.

    Because this API is also exposed via PowerShell (Get-MgExternalConnectionItem / Get-MgBetaExternalConnectionItem) for diagnostics, the same 500 error would be expected there for Tenant A. This further confirms that the issue is on the service side rather than in the app code.


    References:

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.