microsoftgraph / microsoftgraph/microsoft-graph-explorer-v4

Device Status for Device Compliance Policy not returning all items

Open
#4,043 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

ToTriage
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:

  1. Go to https://developer.microsoft.com/en-us/graph/graph-explorer
  2. Enter the URL https://graph.microsoft.com/v1.0/deviceManagement/deviceCompliancePolicies/{compliancePolicyID}/dev…
  3. Click "Run Query"
  4. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.