M365 Ingestion - Graph API error #291

Closed
opened 2026-04-05 16:17:17 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @warnspread on 8/15/2025

When running OpenArchiver against a Microsoft 365 mailbox, every mail folder sync fails with the following Graph API error:

Could not find a property named '@removed' on type 'microsoft.graph.message'.
code: RequestBroker--ParseUri
statusCode: 400

The error occurs for every folder, Example log output:

ERROR: Failed to sync mail folder
userEmail: "example@domain.com"
folderId: "<...>"
err: {
  "type": "GraphError",
  "message": "Could not find a property named '@removed' on type 'microsoft.graph.message'.",
  "statusCode": 400,
  "code": "RequestBroker--ParseUri",
  "body": "{\"code\":\"RequestBroker--ParseUri\",\"message\":\"Could not find a property named '@removed' on type 'microsoft.graph.message'.\"}"
}

Since i'm not aware of the topic by myself this is the ChatGPT analysis:

• The property @removed is not a normal microsoft.graph.message field.
• It is only included in delta query responses when an item has been removed, and should not be requested in $select or $filter.
• If OpenArchiver is building a Graph request like:

/me/mailFolders/{id}/messages/delta?$select=subject,sender,isRead,@removed

this will cause the error.

• According to Microsoft Graph documentation, @removed can be read from the response but must not be explicitly requested.

I've used the latest tag in a slightly modified docker-compose (bind mount, some labels, different networks). The App registration got the
Mail.Read and User.Read.All permissions with Admin grant. The tenant is located in germany and the mailbox locales are set to german aswell (if this even matters). I'm open to test something if required :)

*Originally created by @warnspread on 8/15/2025* When running OpenArchiver against a Microsoft 365 mailbox, every mail folder sync fails with the following Graph API error: ``` Could not find a property named '@removed' on type 'microsoft.graph.message'. code: RequestBroker--ParseUri statusCode: 400 ``` The error occurs for every folder, Example log output: ``` ERROR: Failed to sync mail folder userEmail: "example@domain.com" folderId: "<...>" err: { "type": "GraphError", "message": "Could not find a property named '@removed' on type 'microsoft.graph.message'.", "statusCode": 400, "code": "RequestBroker--ParseUri", "body": "{\"code\":\"RequestBroker--ParseUri\",\"message\":\"Could not find a property named '@removed' on type 'microsoft.graph.message'.\"}" } ``` Since i'm not aware of the topic by myself this is the ChatGPT analysis: > • The property @removed is not a normal microsoft.graph.message field. > • It is only included in delta query responses when an item has been removed, and should not be requested in $select or $filter. > • If OpenArchiver is building a Graph request like: > > `/me/mailFolders/{id}/messages/delta?$select=subject,sender,isRead,@removed` > > this will cause the error. > > • According to Microsoft Graph documentation, @removed can be read from the response but must not be explicitly requested. I've used the latest tag in a slightly modified docker-compose (bind mount, some labels, different networks). The App registration got the Mail.Read and User.Read.All permissions with Admin grant. The tenant is located in germany and the mailbox locales are set to german aswell (if this even matters). I'm open to test something if required :)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OpenArchiver#291