XR-074: Loss of Connectivity to Xbox and Partner Services *
Version 1.3, 03/01/2025
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
- Sign in to an Xbox profile.
- While performing the following actions, disconnect the WAN network. If you are 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
- The title displays an error message indicating loss of network connection to Xbox services.
- The title does not display an error message while playing a local game mode that does not require Xbox services.
- A title with
RequireXboxLive
in AppX manifest suspends and then terminates when connectivity is lost.
Fail Examples
- The user is unable to complete a non-online Xbox game session.
- Title goes into an unresponsive or unstable state.
074-02 Direct Disconnection
Test Steps
- Launch the title and sign in to an Xbox profile.
- While performing the following actions in the title, pull the 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
- The title displays a user-friendly message while in online game mode.
- The title does not interrupt gameplay during offline game mode.
- A title with
RequireXboxLive
in AppX manifest suspends and then terminates when connectivity is lost.
Fail Examples
- An error message is displayed during offline game mode.
- The title goes into an unresponsive or unstable state.
- 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
Sign in to an Xbox profile and launch the title.
While on the main menu or front-end menu:
- On consoles, suspend the title by running
xbapp suspend [PFN]
- On PC, suspend the title by minimizing the window or pressing the Windows button on the device.
- On consoles, suspend the title by running
Wait 30 seconds for the title to fully suspend and for the suspension to interrupt any HTTP request.
Resume the title.
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
- During an online Xbox multiplayer session, the title displays an error message indicating loss of network connection to Xbox services.
- The title does not display an error message while playing a local game mode that does not require Xbox services.
Fail Examples
- The user is unable to complete a non-online Xbox game session.
- The title goes into an unresponsive or unstable state.
- 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
- Sign into an Xbox profile and ensure the console is set to Home.
- With no connection to Xbox but retaining a local network connection, launch the title.
- 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.
- While on the main menu or front-end menu:
- On consoles, suspend the title by running
xbapp suspend [PFN]
- On PC, suspend the title by minimizing the window or pressing the Windows button on the device.
- On consoles, suspend the title by running
- Wait 30 seconds for the title to fully suspend and for the suspension to interrupt any HTTP request.
- Reconnect the uplink cable and wait for the console to reconnect to Xbox.
- Resume the title.
- 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
- The user is able to resume the title and complete an offline Xbox game session without interruption.
- The title remains stable and does not crash.
Fail Examples
- The user is unable to complete a non-online Xbox game session.
- The title goes into an unresponsive or unstable state.
- 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 corresponds to this XR.
Test Steps
- Using the minimum profile, throttle connectivity to Xbox device's minimum operating requirements.
- 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
- User-friendly message is displayed indicating possible impact to online play due to low bandwidth.
- Title does not crash and does not cause a loss of user data.
Fail Examples
- 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 corresponds to this XR.
Test Steps
- Disable all network restrictions in xbstress.exe.
- Perform title-related online actions, including but not limited to:
- Navigating all menus.
- Playing an online game session.
- While performing Step 2, enable the 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
- User-friendly message is displayed indicating possible impact to online play due to low bandwidth.
- Title does not crash and does not cause a loss of user data.
Fail Examples
- Title crashes or causes user data loss.
074-07 Dynamic Connectivity Loss
Tools Needed:
- Fiddler Classic with the Content Blocking Add-on
Configure Fiddler Classic to block Partner Services using the Content Blocking add-on
- On Console, setup Fiddler to debug web service calls
- On PC, setup Fiddler to debug web service calls
- Install the Content Blocking add-on for Fiddler
- In Fiddler, select the menu ContentBlock and "Enabled"
Tip
Steps to configure the block list:
- With Fiddler running, launch the title and navigate all menus, complete a multiplayer session, load into every game mode, and navigate all areas of the title including, but not limited to:
- menus
- leaderboards
- servers (create one and join someone else's)
- friends lists
- in-title store
- limited time events
This ensures the title connects to all hosts during normal gameplay.
In Fiddler, identify which hosts are non-Microsoft services:
- Sort the list of sessions by Host and find hosts that DO NOT contain any of the following:
microsoft, msft, xboxlive, xboxservices, live, PlayFabApi, msn, bing
- Sort the list of sessions by Host and find hosts that DO NOT contain any of the following:
In Fiddler, add the Non Microsoft hosts to the block list:
- Right-click a Non Microsoft host and select 'Block this Host'
- Repeat for all other Non Microsoft hosts
You don't have to block the same host multiple times.
To edit the Block List, select the ContentBlock menu and "Edit Blocked Hosts..."
Now that all Non Microsoft hosts have been added to the block list, proceed to running the test case.
Test Steps
- Sign in to an Xbox profile and launch the title.
- Complete a multiplayer session, load into every game mode and navigate all areas of the title including, but not limited to:
- Menus
- Leaderboards
- Servers (create one and join someone else's)
- Friends List
- In-title Store
- Limited time events
- Verify the title does not display an error message indicating an issue with the Xbox network.
Expected Result
The title gracefully handles disconnections to non-Microsoft services.
Pass Examples
- Title does not hang or crash upon loss of connectivity to partner-hosted services.
Fail Examples
- Message displayed implies issues with Microsoft services.
- Non-descriptive error message is displayed.
- 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
Test Steps
- On consoles, create a broken network channel with xbstress.exe for non-Microsoft traffic using the command:
xbstress set channel=0 network=broken addresses=[semicolon delimited list of addresses]
- Start the network simulation with the command:
xbstress simulate network=channels
. - If testing on Windows 10, use fiddler to emulate downtime.
- Sign in to an Xbox profile.
- Launch the title.
- 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
- Title does not hang or crash upon loss of connectivity to the partner-hosted service.
Fail Examples
- Error displayed implies issues with Microsoft service.
- Non-descriptive error message is displayed.
- Title crashes, becomes unstable, or causes console reboot.