We are experiencing an issue when performing operations using Microsoft Graph API, where these operations appear to be breaking the UI.
The issue consistently occurs when using a Service Principal (app-only authentication / client credentials flow). All required permissions are granted, and the API operations themselves execute successfully without any errors.
However, after performing operations via Graph API, the UI in both Microsoft Teams (Planner) and the Android Planner app fails to load data correctly or becomes unstable.


This issue is observed across both:
- Graph API v1.0
- Graph API beta
This suggests that the problem is likely not version-specific.
Observed Behavior
- API calls (create/update/delete) succeed with valid responses
- Tasks are correctly created, updated, or deleted via API
- However, immediately after these operations:
- Teams Planner UI fails to render properly
- Android Planner app is unable to load tasks
- Interestingly, if we manually update the same task via UI (e.g., change status), the UI starts working correctly again
- But performing another operation via API causes the same issue to reoccur
Questions
We would like to understand:
- Is this a known limitation when using app-only (Service Principal) authentication with Planner APIs?
- Are there mandatory fields or metadata (e.g., auditing fields) that must be explicitly set when using app-only flows?
- Could this be due to:
- Backend synchronization or propagation delays
- Incomplete metadata population by Graph API
- Differences in how UI clients interpret app-created tasks
- Is this a known bug/regression in Planner/Graph API?
Key Observation
We compared the JSON payloads of:
- A task created from Teams UI
- A task created via Graph API (Service Principal)
We could not find major structural differences, except in some auditing-related fields and metadata.
{
"id": "[Moderator note: personal info removed]",
"title": "From teams", //Task created from teams
"planId": "[Moderator note: personal info removed]",
"bucketId": "[Moderator note: personal info removed]",
"priority": 5,
"percentComplete": 0,
"createdDateTime": "2026-06-08T09:50:52+00:00",
"dueDateTime": "2026-06-22T10:00:00+00:00",
"startDateTime": null,
"completedDateTime": null,
"lastModifiedDateTime": "2026-06-08T09:51:18+00:00",
"hasDescription": true,
"hasChat": false,
"isArchived": false,
"isOnMyDay": false,
"isOnMyDayLastModifiedDate": null,
"orderHint": "[Moderator note: personal info removed]",
"assigneePriority": "",
"activeChecklistItemCount": 0,
"checklistItemCount": 0,
"referenceCount": 0,
"previewType": "Description",
"conversationThreadId": null,
"specifiedCompletionRequirements": "None",
"odataType": null,
"creationSource": null,
"details": null,
"assignedToTaskBoardFormat": null,
"bucketTaskBoardFormat": null,
"progressTaskBoardFormat": null,
"archivalInfo": null,
"messages": null,
"createdBy": {
"user": {
"id": "<user-object-id>",
"displayName": null,
"odataType": null,
"additionalData": {}
},
"application": {
"id": "[Moderator note: personal info removed]", //most likely planner service principal
"displayName": null,
"odataType": null,
"additionalData": {}
},
"device": null,
"additionalData": {}
},
"completedBy": null,
"lastModifiedBy": {
"user": {
"id": "<user-object-id>",
"displayName": null,
"odataType": null,
"additionalData": {}
},
"application": {
"id": "[Moderator note: personal info removed]",
"displayName": null,
"odataType": null,
"additionalData": {}
},
"device": null,
"additionalData": {}
},
"appliedCategories": {
"additionalData": {
"category1": true
}
},
"assignments": {
"additionalData": {
"<assigned-user-object-id>": "{UntypedObject}"
}
},
"recurrence": {
"occurrenceId": 1,
"seriesId": "[Moderator note: personal info removed]",
"previousInSeriesTaskId": null,
"nextInSeriesTaskId": null,
"additionalData": {},
"schedule": {
"nextOccurrenceDateTime": "2026-06-24T10:00:00+00:00",
"patternStartDateTime": "2026-06-22T10:00:00+00:00",
"odataType": null,
"additionalData": {},
"pattern": {
"type": "Weekly",
"interval": 1,
"daysOfWeek": ["Monday", "Wednesday", "Friday"],
"dayOfMonth": 0,
"month": 0,
"firstDayOfWeek": "Sunday",
"index": "First",
"additionalData": {}
}
}
}
{
"id": "[Moderator note: personal info removed]",
"title": "Service Task 5", // Created from API
"planId": "[Moderator note: personal info removed]",
"bucketId": "[Moderator note: personal info removed]",
"priority": 1,
"percentComplete": 0,
"createdDateTime": "2026-06-08T09:52:26+00:00",
"dueDateTime": "2026-06-22T10:01:14+00:00",
"startDateTime": null,
"completedDateTime": null,
"lastModifiedDateTime": "0001-01-01T00:00:00+00:00",
"hasDescription": true,
"hasChat": false,
"isArchived": false,
"isOnMyDay": false,
"isOnMyDayLastModifiedDate": null,
"orderHint": "[Moderator note: personal info removed]",
"assigneePriority": "",
"activeChecklistItemCount": 0,
"checklistItemCount": 0,
"referenceCount": 0,
"previewType": "Automatic",
"conversationThreadId": null,
"specifiedCompletionRequirements": "None",
"odataType": null,
"creationSource": null,
"details": null,
"assignedToTaskBoardFormat": null,
"bucketTaskBoardFormat": null,
"progressTaskBoardFormat": null,
"archivalInfo": null,
"messages": null,
"createdBy": {
"user": null,
"application": {
"id": <object-id-of-our-sp>,
"displayName": null,
"odataType": null,
"additionalData": {}
},
"device": null,
"additionalData": {}
},
"completedBy": null,
"lastModifiedBy": null,
"appliedCategories": {
"additionalData": {
"category1": true
}
},
"assignments": {
"additionalData": {
"<user-id-to-which-task-was-assigned>": "{UntypedObject}"
}
},
"recurrence": {
"occurrenceId": 2,
"seriesId": [Moderator note: personal info removed]",
"previousInSeriesTaskId": "[Moderator note: personal info removed]",
"nextInSeriesTaskId": null,
"additionalData": {},
"schedule": {
"nextOccurrenceDateTime": "2026-06-24T10:01:14+00:00",
"patternStartDateTime": "2026-06-20T10:01:14+00:00",
"odataType": null,
"additionalData": {},
"pattern": {
"type": "Weekly",
"interval": 1,
"daysOfWeek": ["Monday", "Wednesday", "Friday"],
"dayOfMonth": 0,
"month": 0,
"firstDayOfWeek": "Monday",
"index": "First",
"additionalData": {}
}
}
},
"@odata.etag": "[Moderator note: personal info removed]
}
Environment
- Authentication: Service Principal (Client Credentials Flow)
- API Versions: v1.0 and beta
- Workload: Planner (Tasks)
- Clients Impacted:
- Microsoft Teams (Planner tab)
- Android Planner app
SDK Details
- Framework: .NET 8
- V1 SDK Used: Microsoft.Graph Version="5.98.0"
- Beta SDK Used: Microsoft.Graph.Beta Version="5.131.0-preview" and "6.0.0-preview"