microsoftgraph / microsoftgraph/msgraph-sdk-java
@microsoft.graph.sharedChanged annotation not set on folders in delta query with deltashowsharingchanges
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 444
- Forks
- 154
- Avg merge
- 18h 28m
- Merged PRs (30d)
- 4
Description
Description
When using the delta query API with Prefer: deltashowremovedasdeleted, deltatraversepermissiongaps, deltashowsharingchanges headers, the @microsoft.graph.sharedChanged OData annotation is only set on files, never on folders — even when folders appear in the delta response with a shared facet.
This is an API behavior issue, not SDK-specific, but we're filing here as the docs repo has issues disabled.
Steps to reproduce
-
Get a latest delta token:
GET /drives/{drive-id}/root/delta?token=latest Headers: Prefer: deltashowremovedasdeleted, deltatraversepermissiongaps, deltashowsharingchanges -
Share a file located inside a folder hierarchy (e.g.,
root/folder/sub-folder/sample.jpg) with a specific user. -
Query delta with the token from step 1:
GET /drives/{drive-id}/root/delta?token={token} Headers: Prefer: deltashowremovedasdeleted, deltatraversepermissiongaps, deltashowsharingchanges
Actual result
The response contains 4 items. Only the file has @microsoft.graph.sharedChanged, the parent folders do not:
FOLDER root — @microsoft.graph.sharedChanged: NOT PRESENT
FOLDER folder — @microsoft.graph.sharedChanged: NOT PRESENT, shared: {scope: users}
FOLDER sub-folder — @microsoft.graph.sharedChanged: NOT PRESENT
FILE sample.jpg — @microsoft.graph.sharedChanged: true, shared: {scope: users}
Expected result
Per the documentation:
"all items that appear in the delta query response due to permission changes have the @microsoft.graph.sharedChanged: True OData annotation"
Parent folders that appear as hierarchy context (not due to their own permission change) should either:
- Have
@microsoft.graph.sharedChangedset when they are directly shared, OR - Be excluded from the response when they are only hierarchy context
Currently, folders never receive the annotation regardless of whether they were directly shared or appear as parent hierarchy. This makes it impossible to distinguish parent folder noise from real folder permission changes.
Additional testing
Tested all header combinations against the same delta token:
| Headers | Result |
|---|---|
| deltashowremovedasdeleted, deltatraversepermissiongaps, deltashowsharingchanges | 4 items, annotation only on file |
| Same + hierarchicalsharing | Identical 4 items |
| Same + deltaExcludeParent: true | Identical 4 items |
| Only deltashowsharingchanges | Identical 4 items |
| No Prefer headers | 0 items |
Environment
- API version: v1.0
- Authentication: Application permissions (client credentials)
- Service: SharePoint Online
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No repository file or test is identified; begin with the documented /drives/{drive-id}/root/delta endpoint and the listed Prefer headers, using the supplied token sequence to reproduce the four-item response. Done means the service behavior or its documentation clearly distinguishes directly shared folders from hierarchy-only folders, with the expected annotation behavior verified.
Written by the indexing model from the issue text.
Assessment
- Domain
- api, cloud
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100