Guidelines for when to use message dialogs.
Appropriate use of message dialogs
These are scenarios where it is appropriate to take the user out of their immersive experience and present them with a dialog:
Urgent information
Use message dialogs to convey urgent information that the user must see and acknowledge before continuing. An example is, "Your trial period for advanced features has expired."
Errors
Error messages that apply to the overall app context use message dialogs. These are different than error messages that can be conveyed inline. An appropriate example is a message dialog that shows a connectivity error; this critically affects the value that the user can get from the app:

Questions
Use message dialogs to present blocking questions that require the user's input.
A blocking question is a question where the application cannot make a choice on the user's behalf, and cannot continue to fulfill it's value proposition to the user. A blocking question should present clear choices to the user. It is not a question that can be ignored or postponed.
Here's an example of a message dialog from the Windows device consent broker asking for consent to use location services:

Inappropriate use of message dialogs
Confirmations
When the app needs to confirm the user's intention for an action that the user has taken, a Flyout is the appropriate surface. See Guidelines and checklist for Flyouts.
Inline errors
For errors that are contextual to a specific place on the page, such as validation errors (in password fields, for example), use the app's canvas itself to show inline errors. See Choosing the right UI surfaces: Errors.
Related topics
Build date: 11/29/2012