Incident response6 min read

Microsoft 365 outage on November 13, 2026: impact and debugging lessons

Understand the confirmed service boundaries, check the workflows you depend on, and separate restored access from completed delivery.

Microsoft 365 outage: triage and practice hub

Editorial disclosure

Buglyst is not affiliated with Microsoft. The incident summary is based on the official business-service status snapshot checked at the stated time and may become outdated. The analysis is independent educational guidance, not a reconstructed Microsoft postmortem. Hypothetical examples and the related labs are original simulations, not claims about Microsoft’s implementation.

microsoft-365outlookmicrosoft-graphincident-responseretriesemail-delivery
info

Incident snapshot checked 2026-11-13 at 15:12 UTC, against Microsoft’s public business-service update timestamped 14:56:52 UTC. This article is not a live status monitor. Use Microsoft’s official status page and your tenant’s Service health for current information.

If a collaboration workflow fails, identify the exact operation before changing devices, credentials or production settings. Mailbox access, calendar updates, chat messages and email delivery have different success conditions. A useful first report names the failing operation, its timestamp and the affected account or tenant, with sensitive details kept inside the support channel.

What the checked Microsoft update established

At the checked snapshot, Microsoft classified the incident as service degradation and reported improving availability, with intermittent connection failures and delayed email still possible. Affected capabilities included Exchange Online mailbox access and Exchange-dependent features in other services. Most core Teams calling and messaging functions were described as unaffected; calendar-related operations were among the exceptions. Microsoft Graph operations involving Exchange data could time out.

The update did not establish a definitive root cause. Microsoft said it had found no evidence of malicious activity and would publish a post-incident report after mitigation. Its next update was scheduled for 16:00 UTC that day. The report does not provide enough evidence to assign a precise worldwide scope or affected-user count.

A dependency boundary is useful evidence, not a full architecture

The engineering lesson is to map capabilities within a product. A meeting can have distinct paths for joining, editing its calendar entry and delivering an invitation. A working join experience proves little about invitation delivery. Likewise, successfully opening an application does not prove its background synchronization is healthy.

A pattern of failures around one dependency suggests where to investigate next. It does not identify the failing component, deployment, storage system or recovery mechanism. Correlated symptoms can narrow a hypothesis without confirming its cause. Keep an evidence ledger: what was observed, what the provider confirmed, what remains a hypothesis, and which observation would distinguish competing explanations.

Checks that help without creating a second incident

  1. 1Read the official incident update and your tenant’s Service health. Record the check time and service identifier so later readers can distinguish an old observation from a new one.
  2. 2Test one harmless operation through an approved client. Compare mailbox access, calendar reads and message delivery separately; use a designated test recipient rather than repeatedly emailing customers.
  3. 3Compare affected and unaffected users within your permitted scope. Record client type and connection method. A single successful browser test does not establish recovery for another access path.
  4. 4For integrations, capture HTTP status, timestamp, request identifier and Retry-After when present. Keep access tokens, mailbox contents and personal information out of public screenshots.
  5. 5Preserve useful evidence and avoid broad credential resets, client reinstalls or configuration edits without a specific hypothesis. An unrelated change makes the original failure harder to isolate.

Make retries respect the dependency

Microsoft Graph’s throttling documentation distinguishes a 429 response from a successful request and instructs clients to honor the supplied retry delay. Its error documentation also describes temporary service-unavailable responses. These are general API contracts; they do not prove which error any tenant encountered during this incident.

An integer Retry-After value represents seconds. The HTTP standard also permits an HTTP-date. Converting seconds into a millisecond scheduler incorrectly can turn a respectful pause into rapid repeated requests. When no usable delay exists, use a bounded backoff policy; cap total attempts and elapsed time. Check existing SDK retry behavior before adding another retry layer.

For a write that times out, the outcome may be unknown. Verify the operation-specific semantics before replaying it. Keep a stable logical operation identifier where supported, reconcile uncertain outcomes, and avoid treating every connection error as proof that nothing happened.

Restored availability and a drained backlog are different milestones

A healthy mailbox connection answers an access question. It does not establish that every earlier message reached its destination. Track queued, submitted and confirmed outcomes separately, using the delivery evidence your system actually exposes. A queue acknowledgement should be presented as queued rather than delivered.

In your own notification service, watch the oldest pending item as well as queue depth. A shrinking queue can hide expired messages or discarded work. Keep the original creation time and expiry deadline across retries; resetting the deadline on each attempt can keep obsolete notifications alive indefinitely.

For example, a fictional appointment reminder might become useless after the appointment begins. A later successful transport should not revive it. Recovery should reconcile expired work, uncertain submissions and duplicate attempts before restoring normal concurrency. This example describes an application-design risk, not Microsoft’s queue implementation or incident timeline.

Practise the failure modes in a contained lab

The related triage guides below cover Outlook symptoms, Graph retry responses and delayed-mail recovery. Start with the guide matching the failed operation, then use its checklist to collect evidence before escalating.

Two Buglyst labs provide original simulations: graph-retry-after-unit-mismatch tests retry-delay conversion, while email-queue-expiry-reset-on-retry tests whether a message keeps its original deadline. Both are normal free labs that require an account. They are independent exercises, not reconstructions of Microsoft software.

A useful practice result is a small correction plus a regression test for the boundary: the expected wait is preserved, retry work stays bounded, or an expired message cannot re-enter delivery. Those habits remain useful after the status page changes.

Frequently asked questions

Is Microsoft 365 still down now?

This article cannot answer live availability. Check Microsoft’s official status page and your tenant’s Service health, then test the particular operation you need. Note the timestamp of both the provider update and your test.

Does a working Teams call mean calendar invitations are healthy?

No. Joining a call, updating a calendar and delivering an invitation are different operations. Test the affected workflow directly before closing the issue.

Does a Microsoft Graph 429 prove a provider-wide outage?

No. A 429 indicates throttling for that request. Interpret it alongside tenant health, request context and independent observations; follow the response’s retry guidance.

Should I resend every delayed email?

First establish whether each message was queued, accepted or confirmed delivered. Blind resending can duplicate messages whose outcome was uncertain. Use the delivery evidence available to your organization.