microsoftgraph / microsoftgraph/microsoft-graph-explorer-v4
Device Status for Device Compliance Policy not returning all items
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 260
- Forks
- 110
- PR merge metrics
- No merged PRs in 30d
Description
Describe the bug
The Device Status for the device compliance policies from the following api endpoint does not return all the devices in that compliance policy: https://graph.microsoft.com/v1.0/deviceManagement/deviceCompliancePolicies/{compliancePolicyID}/dev…
If I run https://graph.microsoft.com/v1.0/deviceManagement/deviceCompliancePolicies/{compliancePolicyID}/dev…, it correctly gives me the correct number of devices in that compliance policy, but when I check the deviceStatuses, it gives me only 51 out of all devices. I checked with all the other device compliance policies and its consistently only giving me 51 when there should be over 100 for each one.
To Reproduce
Steps to reproduce the behavior:
- Go to https://developer.microsoft.com/en-us/graph/graph-explorer
- Enter the URL https://graph.microsoft.com/v1.0/deviceManagement/deviceCompliancePolicies/{compliancePolicyID}/dev…
- Click "Run Query"
- Notice that not all devices are listed, only 51 are shown
Expected behavior
Expected to see a full list of devices, but only 51 are being displayed out of 100+
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
- OS: macOS
- Browser: edge
- Version: 149.0.4022.80
Additional context
There is no odata.nextLink supplied. All response headers look like this:
"@odata.context": "[https://graph.microsoft.com/v1.0/$metadata#deviceManagement/deviceCompliancePolicies('id')/deviceSt…](https://graph.microsoft.com/v1.0/$metadata#deviceManagement/deviceCompliancePolicies(%27id%27)/deviceStatuses%22),
"@odata.count": 51,
"@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET deviceManagement/deviceCompliancePolicies('<guid>')/deviceStatuses?$select=complianceGracePeriodExpirationDateTime,deviceDisplayName",
"value": [...]
I've tried setting a $top parameter to 999 and it still only returns 51 regardless of compliance policy. First noticed on Thursday, June 18, 2026
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
Start by reproducing the request in Microsoft Graph Explorer with the deviceCompliancePolicies/{compliancePolicyID}/deviceStatuses and deviceStatusOverview endpoints. Compare the returned counts, response headers, and presence of @odata.nextLink, including the effect of $top=999. Done means identifying whether the missing devices are caused by the API response or by pagination handling and documenting the confirmed behavior.
Written by the indexing model from the issue text.
Assessment
- Domain
- api
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100