Overview
The Microsoft Teams Online Meeting monitoring test appears in the Microsoft Teams section of the Office 365, ECLOUD-INTERNET and Remote Probe monitoring nodes.
Monitoring Benefit
The Microsoft Teams Online Meeting test verifies that a standalone Teams meeting can be created and then retrieved through the Teams meeting control plane, without involving the Exchange calendar at all. It confirms that a meeting ID and a join URL are returned, and that the meeting persisted rather than merely that the create call succeeded.
A standalone online meeting is not a calendar item. Because nothing in this test touches Exchange, it answers a question the calendar-backed test cannot: is Teams meeting creation itself working, with the Exchange calendar workflow taken out of the picture?
Nothing needs to be cleaned up. A standalone online meeting never appears as an invitation, and it has a bounded lifetime that the service clears after the meeting window.
How do we verify the monitoring test results?
1. Confirm the monitoring credential is valid.
For the Office 365 and ECLOUD-INTERNET monitoring tests, navigate to Server > Tuning Policy > Settings > Office 365 > Microsoft Teams > Microsoft Teams User > Verify Credential.
For the Remote Probe monitoring tests, navigate to Server > Tuning Policy > Settings > Probe Configuration > Configure Probes… > Default Office 365 Settings > Microsoft Teams > Verify Credential.
2. Confirm the Teams application access policy is still assigned.
This is the single most common cause of a sudden 403 on this test, and it is not the same policy the Exchange-based Teams tests use. Creating an online meeting on behalf of an organiser requires a Teams application access policy, created and granted through Teams PowerShell:
Get-CsApplicationAccessPolicy
Get-CsOnlineUser -Identity {synthetic organiser} | Select-Object PolicyAssignment
If the policy is missing or has been unassigned from the synthetic organiser, both create and retrieve return 403 while every other Teams test continues to pass.
3. Reproduce the meeting creation manually.
POST https://graph.microsoft.com/v1.0/users/{synthetic organiser}/onlineMeetings
{
"startDateTime": "{now+5min}",
"endDateTime": "{now+35min}",
"subject": "Manual online meeting check {timestamp}"
}
A healthy result is HTTP 201 with an id and a populated joinWebUrl pointing at teams.microsoft.com. Use a unique subject each time: the online meeting API is idempotent for an identical body within a short window, so repeating the same request returns the earlier meeting instead of creating a new one.
Prerequisites
This test authenticates through an enterprise application registered in Microsoft Entra ID, acquiring a token from login.microsoftonline.com and calling Microsoft Graph at graph.microsoft.com.
The enterprise application requires the Microsoft Graph application permission OnlineMeetings.ReadWrite.All, admin-consented in the tenant.
The Graph permission is not sufficient on its own. A Teams application access policy must also be created and granted to the synthetic organiser through Teams PowerShell, using New-CsApplicationAccessPolicy and Grant-CsApplicationAccessPolicy. This is a separate policy from the Exchange Application Access Policy used by the Teams Calendar Integration and Teams Exchange Integration tests, and it is configured in a different place.
The synthetic organiser needs a Teams licence and exclusion from any Conditional Access policy that would block non-interactive access for the application.
Common warning or error results, and potential solutions
| Result | Potential solution |
| Authentication failure | Token acquisition failed or Graph returned 401. Re-run Verify Credential. Confirm the client secret or certificate has not expired. |
| Permission failure | Graph returned 403 on create or read. Almost always the Teams application access policy is missing or no longer granted to the synthetic organiser. Check this before checking consent — the Graph permission being consented is not sufficient on its own. |
| Teams license or capability missing | Graph reported that the organiser is not Teams-enabled or not licensed for online meetings. Confirm the synthetic account still holds a Teams licence. |
| Online meeting creation failure | The create call did not return 201, or returned 201 without a meeting ID, and the cause was not permission or licensing. Review the recorded Graph error code. |
| Join URL missing | The meeting was created but no joinWebUrl came back. The control plane accepted the meeting but did not produce a joinable link. |
| Online meeting retrieval failure | The meeting was created but could not be read back by ID. The create call returning is not proof the meeting persisted; this stage is what confirms it did. |
| Graph throttling | Graph returned 429. The test honours Retry-After and retries before reporting. |
| Timeout | A call exceeded the per-call timeout with no response. Check outbound connectivity from the monitoring node. |
| Unknown error | A failure outside the categories above. Review the recorded HTTP status and Graph error code. |
Reading this test alongside Teams Calendar Integration
The two tests are designed to be read together, and the combination localises the fault:
- Both pass — Teams meeting creation is healthy on both paths.
- Online Meeting passes, Calendar Integration fails — the Teams meeting service is fine; the fault is in the Exchange calendar path.
- Both fail — the fault is in the Teams meeting service itself, not in Exchange.
Related monitoring tests
- Microsoft Teams - Calendar Integration — the calendar-backed meeting creation path.
- Microsoft Teams - Exchange Integration — the read-only Exchange dependency check.
Comments
0 comments
Please sign in to leave a comment.