- The network is not available.
- The service is too busy, returning a 503 HTTP status code.
- The request is not valid, returning a 400 HTTP status code.
- The user does not have the right permissions, returning a 403 HTTP status code.
- The user has been banned, returning a 401 HTTP status code.
- The HTTP stack is unable to send the request (ERROR_TIMEOUT, RPC_S_CALL_FAILED_DNE, etc.)
HRESULT values instead of throwing exceptions.
Check the HRESULT that each function returns. For asynchronous calls, also check the completion result by calling XAsyncGetStatus or the operation’s result function in your completion callback.
Pass a failed HRESULT to XblGetErrorCondition to classify the failure into a condition that your game can act on, such as Network, Auth, or Http429TooManyRequests.