Compartilhar via


XR-074: Loss of Connectivity to Xbox and Partner Services *

Version 1.2, 04/01/2024

Titles must gracefully handle errors with Xbox and partner services connectivity. Titles must honor the retry policies set by Xbox when attempting to retry a request to the Xbox service after a failure has occurred. Titles must appropriately manage messaging the user when services are unavailable. If a partner service is not available, the game must not indicate that there is an issue with the Xbox network. Titles must not crash or hang if network services are slowed or intermittently available.

More Information

Titles should react to the performance of their own network operations and/or use Windows.Xbox.Networking network quality APIs to determine current network conditions. They should also degrade gracefully by transferring less data, choosing appropriate user roles, or leveraging cloud services.

Handling Issues With Non Xbox Services

Titles encountering issues with partner services such as non-transient timeouts, network API errors, or missing service configuration that impacts the user experience should alert the user to the specific feature or service that is unavailable. Titles should fail gracefully to a safe state while the user troubleshoots, or to a state in which the user can manually retry.

An example of a user-friendly message is:

"Sorry, non-Microsoft service is not currently available. Please try again later. For more information, contact non-Microsoft support contact information."

Handling Issues With Xbox Services

Some functionality might become unavailable if connectivity to an Xbox service is lost. In such instances, titles should use clear, user-friendly messaging to communicate this to users.

If a service is unavailable, titles are permitted to retry their request, but they can do so only within the parameters allowed by Xbox. For more information about service resiliency for Xbox console titles, including required HTTP retry and back-off logic, as well as user-interaction guidance for individual services, see Service Interruption Resiliency for Titles

Requiring Xbox Connectivity

When developing for Xbox consoles, titles that require connectivity to the Internet—or Xbox, in particular—for the majority of their functionality might want to include the Boolean flag RequireXboxLive in their AppX manifest. This will block the title from initiating on the Xbox console when Xbox is unavailable and it will suspend, and subsequently terminate, the title if connectivity is lost.

For information on networking using the GDK, read the Networking section.

Certification Test Cases

074-01 WAN Disconnection to Xbox Services

Test Steps

  1. Sign in to an Xbox profile.
  2. While performing the following actions, disconnect the WAN network (If using an Ethernet switch/hub disconnect the uplink cable from the network device. If the device is connected via Wifi, disconnect the uplink cable from the wireless access point) connection:
  • Creating a new save point.
  • Loading a save point.
  • Reaching an auto-save point.
  • Enumerating a list of saved games.
  • Searching for and joining an online session.
  • Attempting to create an online session.
  • Viewing a leaderboard (if applicable).
  • Playing offline.

Expected Result
In the event that the console is unable to reach Xbox services, the title should respond with a user-friendly error message.

Pass Examples

  1. Title displays error message indicating loss of network connection to Xbox services.
  2. Title does not display an error message while playing a local game mode that does not require Xbox services.
  3. A title with RequireXboxLive in AppX manifest suspends and then terminates when connectivity is lost.

Fail Examples

  1. User is unable to complete a non-online Xbox game session.
  2. Title goes into an unresponsive or unstable state.

074-02 Direct Disconnection

Test Steps

  1. Sign in to an Xbox profile.
  2. Launch the title.
  3. While performing the following actions in the title, pull network cable from the device, or power off the WAP or wireless router:
  • Creating a new save point.
  • Loading a save point.
  • Reaching an auto-save point.
  • Enumerating a list of saved games.
  • Searching for and joining an online session.
  • Attempting to create an online session.
  • Viewing a leaderboard (if applicable).
  • Playing offline.

Expected Result
In the event the device loses connection to Xbox services, the title should respond with a user-friendly error message.

Pass Examples

  1. The title displays a user-friendly message while in online game mode.
  2. The title does not interrupt gameplay during offline game mode.
  3. A title with RequireXboxLive in AppX manifest suspends and then terminates when connectivity is lost.

Fail Examples

  1. An error message is displayed during offline game mode.
  2. The user is able to view online menus or view buffered media after the network goes offline.

074-03 Suspend Disconnection to Xbox Services

Configuration: For Xbox devices, install the title and use 'xbapp list' to return the package full name (PFN) for the title.

Test Steps

  1. Sign in to an Xbox profile and launch the title.
  2. While on the main menu or front-end menu:
  • if testing on Xbox devices, suspend the title by running xbapp suspend [PFN], or
  • if testing on Windows 10 on PC, suspend the title by minimizing the window, or
  • if testing on Windows 10 Mobile, suspend the title by pressing the Windows button on the device.
  1. Wait 30 seconds for the title to fully suspend and for the suspension to interrupt any HTTP request.
  2. Resume the title.
  3. Repeat Steps [2] - [4] from the following additional areas if supported:
  • During a single-player game session.
  • During an online multiplayer session.
  • While in a pre-game multiplayer lobby.
  • While viewing an online leaderboard.
  • During video or audio playback.

Expected Result
In the event that the console is unable to reach Xbox services after being suspended, the title must reactivate successfully, handle the situation gracefully, and respond with a user-friendly error message where appropriate.

Pass Examples

  1. During an online Xbox multiplayer session, the title displays an error message indicating loss of network connection to Xbox services.
  2. The title does not display an error message while playing a local game mode that does not require Xbox services.

Fail Examples

  1. The user is unable to complete a non-online Xbox game session.
  2. The title goes into an unresponsive or unstable state.
  3. The title displays a misleading or incorrect error message after resuming.

074-04 Xbox Service Re-connection During Suspend

Configuration: For Xbox devices, install the title and use 'xbapp list' to return the package full name (PFN) for the title.

Test Steps

  1. Sign into an Xbox profile and ensure the console is set to Home.
  2. With no connection to Xbox but retaining a local network connection (If utilizing a Ethernet switch/hub disconnect the uplink cable from the network device. If the device is connected via Wifi, disconnect the uplink cable from the wireless access point), launch the title.
  3. While on the main menu or front-end menu:
  • if testing on Xbox devices, suspend the title by running xbapp suspend [PFN], or
  • if testing on Windows 10 on PC, suspend the title by minimizing the window, or
  • if testing on Windows 10 Mobile, suspend the title by pressing the Windows button on the device.
  1. Wait at least 30+ seconds for the title to fully suspend and for the suspension to interrupt any HTTP request.
  2. Reconnect the uplink cable and wait for the console to reconnect to Xbox.
  3. Resume the title.
  4. Repeat Steps [2] - [6] from the following additional areas if supported:
  • During a single-player game session.
  • Within a save/load menu before saving/loading a game.

Expected Result
In the event that the console is unable to reach Xbox services after being suspended, the title must reactivate successfully, handle the situation gracefully, and respond with a user-friendly error message where appropriate.

Pass Examples

  1. The user is able to resume the title and complete an offline Xbox game session without interruption.
  2. The title remains stable and does not crash.

Fail Examples

  1. The user is unable to complete a non-online Xbox game session.
  2. The title goes into an unresponsive or unstable state.
  3. The title displays a misleading or incorrect error message after resuming.

074-05 Constant Low Bandwidth

Tools Needed: xbstress.exe from the GDK/XDK.

Configuration: Network simulation is controlled by the command-line stress tool xbstress.exe. This tool configures various console stressors, including network simulation. For networking purposes xbstress.exe controls a specialized driver on the Xbox device, which drops packets, injects latency, and limits throughput. xbstress.exe has three pre-configured simulation profiles that allow you to easily simulate important networking scenarios: minimum, average, and excellent. The minimum profile maps to this XR.

Test Steps

  1. Using XBStress' minimum profile, throttle connectivity to Xbox device's minimum operating requirements.
  2. Perform title-related online actions, including but not limited to:
  • Navigating all menus.
  • Playing an online game session.

Expected Result
Titles must not crash or cause user data loss when user's internet connection drops below 192 Kbps.

Pass Examples

  1. User-friendly message is displayed indicating possible impact to online play due to low bandwidth.
  2. Title does not crash and does not cause a loss of user data.

Fail Examples

  1. Title crashes or causes user data loss.

074-06 Variable Low Bandwidth

Tools Needed: xbstress.exe from the GDK/XDK.

Configuration: Network simulation is controlled by the command-line stress tool xbstress.exe. This tool configures various console stressors, including network simulation. For networking purposes xbstress.exe controls a specialized driver on the Xbox device, which drops packets, injects latency, and limits throughput. xbstress.exe has three pre-configured simulation profiles that allow you to easily simulate important networking scenarios: minimum, average, and excellent. The minimum profile maps to this XR.

Test Steps

  1. Disable all network restrictions in xbstress.
  2. Perform title-related online actions, including but not limited to:
  • Navigating all menus.
  • Playing an online game session.
  1. While performing Step [2], enable xbstress' minimum profile.

Expected Result
Titles must not crash or cause user data loss when user's internet connection drops below 192 Kbps.

Pass Examples

  1. User-friendly message is displayed indicating possible impact to online play due to low bandwidth.
  2. Title does not crash and does not cause a loss of user data.

Fail Examples

  1. Title crashes or causes user data loss.

074-07 Dynamic Connectivity Loss

Tools Needed:

  • xbstress.exe from the GDK/XDK
  • For Windows 10, Fiddler Classic

Configuration:
For Xbox devices, network simulation is controlled by the command-line stress tool xbstress.exe. xbstress.exe allows the user to block a list of domain names and IPs, this test is performed with a provided list of addresses to block non-Microsoft traffic.

Test Steps

  1. Sign in to an Xbox profile.
  2. Launch the title.
  3. Access non-Microsoft online feature.
  4. If testing on Xbox devices, create a broken network channel with xbstress for non-Microsoft traffic using the command:

xbstress set channel=0 network=broken addresses=[semicolon delimited list of addresses]

  1. Start the network simulation with the command: xbstress simulate network=channels.
  2. If testing on Windows 10, use fiddler to emulate downtime.

Expected Result
Title should gracefully handle disconnections to non-Microsoft service.

Pass Examples

  1. Title does not hang or crash upon loss of connectivity to the partner-hosted service.

Fail Examples

  1. Error displayed implies issues with Microsoft service.
  2. Non-descriptive error message is displayed.
  3. Title crashes, becomes unstable, or causes console reboot.

074-08 Pre-Launch Downtime

Tools Needed:

  • xbstress.exe from the GDK/XDK
  • For Windows 10, Fiddler Classic

Configuration:
For Xbox One, network simulation is controlled by the command-line stress tool xbstress.exe. xbstress.exe allows the user to block a list of domain names and IPs, this test is performed with a provided list of addresses to block non-Microsoft traffic.

Test Steps

  1. If testing on Xbox devices, create a broken network channel with xbstress for non-Microsoft traffic using the command:

xbstress set channel=0 network=broken addresses=[semicolon delimited list of addresses]

  1. Start the network simulation with the command: xbstress simulate network=channels.
  2. If testing on Windows 10, use fiddler to emulate downtime.
  3. Sign in to an Xbox profile.
  4. Launch the title.
  5. Access non-Microsoft online feature.

Expected Result
Titles should provide a user-friendly error message indicating that there is a problem reaching the non-Microsoft service and should allow an opportunity to retry connection.

Pass Examples

  1. Title does not hang or crash upon loss of connectivity to the partner-hosted service.

Fail Examples

  1. Error displayed implies issues with Microsoft service.
  2. Non-descriptive error message is displayed.
  3. Title crashes, becomes unstable, or causes console reboot.