> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Débogage de Game Saves

> Corrigez les erreurs courantes de Game Saves du GDK XBOX, notamment une mauvaise configuration du SCID, la configuration de Connected Storage dans Partner Center, le nettoyage des handles et les codes NTSTATUS.

Cet article couvre les scénarios courants de Game Saves qui nécessitent un débogage et la façon de les corriger.

## Scénarios d'erreur courants de Game Saves

### Identificateur de configuration de service mal configuré

Si l'erreur 0x80830002 (E\_GS\_NO\_ACCESS) se produit lorsque vous appelez [XGameSaveFilesGetFolderWithUiAsync](/fr-CA/reference/system/xgamesavefiles/functions/xgamesavefilesgetfolderwithuiasync), l'identificateur de configuration de service (SCID) dans votre code source est probablement incorrect. Assurez-vous que le SCID correspond à celui qui apparaît dans Microsoft Partner Center. Le message d'erreur système suivant peut s'afficher.

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/temporary-network-error.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=d43a9f64593871f84957ae415351e491" alt="Boîte de dialogue : Il y a un problème réseau temporaire." width="2218" height="923" data-path="images/gdk/features/common/temporary-network-error.png" />

#### Conséquences de la liaison de jeux

Si votre titre utilise la [liaison de jeux](/fr-CA/services/xbox-services/fundamentals/game-binding/game-binding-overview) et ajoute plus tard une version PC du Microsoft Game Development Kit (GDK), il doit utiliser l'AppID du compte Microsoft (MSA) (MSAppID) du produit principal. L'utilisation du MSAAppID du produit secondaire provoque des erreurs 0x80830002.

### Paramètres de Partner Center mal configurés

Des paramètres de Partner Center mal configurés peuvent être une cause courante d'erreurs de Game Saves. Pour que les Game Saves des utilisateurs se synchronisent vers et depuis le nuage, sélectionnez l'option **Connected Storage** dans Partner Center, sous **Gameplay settings** > **Title Storage**. L'image suivante illustre la configuration de Connected Storage dans Partner Center requise pour que les Game Saves puissent se synchroniser correctement vers et depuis le nuage.

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/partner-center-config-setup.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=3e538fa1fdfd3ea926e2dea68e8ed584" alt="Configuration de Connected Storage dans Partner Center." width="2187" height="895" data-path="images/gdk/features/common/partner-center-config-setup.png" />

### Nettoyage des handles

La synchronisation des Game Saves vers et depuis le nuage est gérée à l'aide de plusieurs handles. Si la durée de vie de ces handles n'est pas gérée correctement, un comportement indéfini peut survenir lors de la synchronisation vers et depuis le nuage.

`XGameSaveFiles` :

* Appelez [XGameSaveFilesGetFolderWithUiAsync](/fr-CA/reference/system/xgamesavefiles/functions/xgamesavefilesgetfolderwithuiasync) au lancement du titre et lors de sa reprise. Cet appel crée implicitement un handle de fournisseur Game Saves. Le système d'exploitation le supprime lorsque le titre est suspendu ou se termine.

`XGameSave` :

* Supprimez `XGameSaveUpdateHandle` après un appel à [XGameSaveSubmitUpdate](/fr-CA/reference/system/xgamesave/functions/xgamesavesubmitupdate), que la mise à jour ait réussi ou échoué.
* Supprimez `XGameSaveContainerHandle` lorsque le titre est suspendu ou se termine.
* Supprimez `XGameSaveProviderHandle` lorsque le titre est suspendu ou se termine.

### Confirmation des Game Saves

Pour confirmer que vos Game Saves sont téléversées dans le nuage, le titre doit commencer le processus de libération du verrou du titre, puis commencer à téléverser les données. Vous pouvez voir ce trafic avec Fiddler en [inspectant le trafic réseau de Game Saves](/fr-CA/build/core-features/common/game-save/game-saves-tools#inspecting-game-saves-network-traffic).

Pour plus d'informations sur le flux de synchronisation de Game Saves, consultez [Comprendre le flux de synchronisation de Game Saves](/fr-CA/build/core-features/common/game-save/game-saves-syncing).

## Erreurs courantes

| Code d'erreur | Nom | Description | Dépannage |
| - | - | - | - |
| 0x80830002 | E\_GS\_NO\_ACCESS | L'opération a échoué, car le titre n'a pas accès aux espaces de stockage du conteneur. | Cette erreur se produit si le SCID et le TitleID ne sont pas configurés correctement, ce qui entraîne l'échec des appels d'API. Vérifiez que le fichier .config de votre jeu contient le bon TitleID et que votre code source contient le bon SCID. <br /><br />Le message d'erreur qui s'affiche dans l'invite système de la console est : « Il y a peut-être une panne de service. Vérifiez l'état du service. En cas de panne de service, patientez un peu et réessayez, ou utilisez ce jeu ou cette application hors ligne. » <br /> <br />L'erreur se produit lors d'une tentative d'accès à un autre titre qui n'a pas reçu les stratégies d'accès inter-titres appropriées. Configurez les stratégies d'accès requises dans Partner Center pour permettre le chargement et la sauvegarde inter-titres. |
| 0x000000DF | ERROR\_FILE\_TOO\_LARGE | La taille du fichier dépasse la limite permise et le fichier ne peut pas être enregistré. | Cette erreur se produit lors d'une tentative d'écriture de données dans un chemin `XGameSaveFiles` au-delà du quota de 256 Mo du titre. Cette erreur est identique à E\_QUOTA\_EXCEEDED. <br /><br />Pour plus d'informations, consultez [Limites et quotas des systèmes de stockage](/fr-CA/build/core-features/common/game-save/game-saves-storage-systems#limits-and-quotas). |
| 0x80830004 | E\_GS\_USER\_CANCELED | L'utilisateur a annulé le téléchargement de ses sauvegardes de jeu. | Cette erreur se produit si un utilisateur annule une tentative de synchronisation, ce qui force l'échec du fournisseur lorsqu'il tente d'obtenir le verrou. |

Si la tentative de synchronisation est refusée, appelez de nouveau `XGameSaveFilesGetFolderWithUI` afin que le chemin de fichier soit écrit localement. Cet appel retourne `S_OK`.

Cette erreur se produit également lors de l'appel de `XGameSaveFilesGetFolderWithUIResult` avec un fournisseur périmé. Cette erreur se produit aussi lorsque les Gaming Runtime Services (GRTS) désinitialisent un fournisseur Game Saves lorsqu'ils suspendent un titre ou lorsque d'autres événements gérés par le système se produisent. Lorsque le titre reprend, appelez `XGameSaveFilesGetFolderWithUiAsync` pour réinitialiser le fournisseur et vous assurer que les données sauvegardées sont à jour. Si le titre reprend sans effectuer cet appel, le fournisseur reste non initialisé. Les opérations de Game Saves échouent.| | 0x8007000E | E\_OUTOFMEMORY | Il ne reste plus de mémoire pour traiter votre demande.  | Cette erreur survient habituellement pour plusieurs raisons. Vous pouvez capturer les allocations de mémoire avec PIX et rechercher les fuites de mémoire.  <br />  <br />Tenez compte de ce qui suit :<br />  <br />1. Les handles font l'objet d'un comptage de références. Recherchez les fuites de handles. Fermez les handles de mise à jour après une mise à jour réussie ou non. Évitez d'avoir de grandes quantités de mises à jour en attente.<br />  <br />2. Utilisez `XMemTransferMemory` comme solution de contournement pour transférer de la mémoire vers la partition système.<br />  <br />3. Fragmentation importante de la mémoire. | | 0x80070057 | E\_INVALIDARG | Un argument non valide a été fourni. Le paramètre est incorrect. | Cette erreur peut se produire si le SCID utilisé dans `XGameSaveFilesGetFolderWithUI` sur PC n'est pas un GUID valide. | | ---        | ---  | `XGameSaveFilesGetFolderWithUI` se bloque indéfiniment ou échoue de façon sporadique. | Assurez-vous qu'aucune boîte de dialogue système GameSave n'est ouverte sur la machine sur laquelle vous exécutez le titre et qu'aucune boîte de dialogue ne s'affiche sur d'autres consoles pour l'utilisateur. Une boîte de dialogue de connexion ou de synchronisation ouverte peut entraîner un comportement indéfini si elle est ignorée. | 0x80830006 | E\_QUOTA\_EXCEEDED | Le jeu a dépassé le quota par utilisateur pour le jeu. Par défaut, ce quota est de 256 Mo. | Appliquez les pratiques exemplaires suivantes pour la gestion des données de Game Saves. <br />  <br />1. Ne stockez pas de données dépendantes dans plusieurs conteneurs.<br />  <br />2. Utilisez moins de blobs dans le conteneur pour améliorer les performances. <br /><br />Pour plus d'informations, consultez [Limites et quotas des systèmes de stockage](/fr-CA/build/core-features/common/game-save/game-saves-storage-systems#limits-and-quotas) | | 0x80830005 | E\_GS\_UPDATE\_TOO\_BIG  | La taille de la mise à jour de la sauvegarde est trop grande. | La taille totale d'une mise à jour `XGameSave` doit être inférieure à GS\_MAX\_BLOB\_SIZE (16 Mo), quel que soit le nombre total de blobs dans le contexte de mise à jour. | | 0x8924010c | E\_GAMERUNTIME\_INVALID\_HANDLE  | Cette valeur de handle n'est plus valide.  | Cette erreur se produit lors d'une tentative de réutilisation de handles non fermés provenant d'un utilisateur précédent. Fermez les handles qui ne sont plus utilisés. | | 0x80830001 | E\_GS\_INVALID\_CONTAINER\_NAME | Le nom du conteneur n'est pas valide. | Les caractères valides pour la partie chemin (jusqu'à la dernière barre oblique incluse) comprennent les lettres majuscules (A-Z), les lettres minuscules (a-z), les chiffres (0-9), les traits de soulignement (\_) et les barres obliques (/). La partie chemin peut être vide.<br /> <br />Les caractères valides pour la partie nom de fichier (tout ce qui suit la dernière barre oblique) comprennent les lettres majuscules (A-Z), les lettres minuscules (a-z), les chiffres (0-9), les traits de soulignement (\_), les points (.) et les traits d'union (-). Le nom de fichier ne peut pas être vide, se terminer par un point ni contenir deux points consécutifs.  | | 0x80830003 | E\_GS\_OUT\_OF\_LOCAL\_STORAGE  | L'appareil n'a pas suffisamment de capacité de stockage pour sauvegarder le jeu.  | Les utilisateurs doivent libérer de l'espace de stockage pour les Game Saves sur l'appareil. Cette erreur peut se produire même si le quota par utilisateur n'est pas dépassé. <br /><br />Pour plus d'informations, consultez [Gestion des Game Saves au moyen de l'appareil](/fr-CA/build/core-features/common/game-save/game-saves-walkthroughs-and-samples#managing-game-saves-through-the-device).  | | 0x80830007 | E\_GS\_PROVIDED\_BUFFER\_TOO\_SMALL  | La mémoire tampon fournie à l'API était trop petite.  | Cette erreur se produit si l'appelant transmet aux API Game Save une mémoire tampon plus petite que la taille des données de blob lues. Appelez [XAsyncGetResultSize](/fr-CA/reference/system/xasync/functions/xasyncgetresultsize) si vous utilisez des appels `Async` afin de vous assurer que la bonne taille de mémoire tampon est utilisée.  | | 0x80830008 | E\_GS\_BLOB\_NOT\_FOUND | Le blob spécifié est introuvable.  | Pour confirmer qu'un blob existe, utilisez les outils `xbstorage` ou `gamesaveutil` pour télécharger le blob. Effectuez cette étape après que le titre a libéré le verrou (lorsqu'il se termine ou est suspendu) afin d'éviter un comportement indéfini.<br /><br />Pour plus d'informations, consultez [Outils de Game Saves](/fr-CA/build/core-features/common/game-save/game-saves-tools).  | | 0x80830009 | E\_GS\_NO\_SERVICE\_CONFIGURATION  | Le titre n'est pas correctement configuré pour le stockage connecté.   | Cette erreur se produit lorsque le SCID est incorrect ou lorsque le titre n'est pas correctement configuré dans Partner Center.<br /><br />Pour plus d'informations, consultez [Configurations de Partner Center](/fr-CA/build/core-features/common/game-save/game-saves-walkthroughs-and-samples#partner-center-configurations).  | | 0x8083000A | E\_GS\_CONTAINER\_NOT\_IN\_SYNC  | Le conteneur n'est pas encore synchronisé.   | Assurez-vous que le conteneur XGameSave est synchronisé avant de lui soumettre des mises à jour.  | | 0x8083000B | E\_GS\_CONTAINER\_SYNC\_FAILED  | La synchronisation du conteneur a échoué. | Vérifiez que la connexion Internet est stable lors de la synchronisation des données depuis le nuage.  | | 0x8083000C | E\_GS\_USER\_NOT\_REGISTERED\_IN\_SERVICE | Indique que le MSA de l'utilisateur n'est pas encore un compte XBOX services.      | Vérifiez que l'utilisateur que vous utilisez est correctement inscrit dans Partner Center.   | | 0x8083000D | E\_GS\_HANDLE\_EXPIRED  | Le handle utilisé par la fonction a expiré et doit être obtenu de nouveau.  | `XGameSaveUpdateHandle` ne peut pas être réutilisé après une soumission ou lorsque le titre est suspendu | | 0x8083000E | E\_GS\_ASYNC\_FUNCTION\_REQUIRED  | La fonction est appelée sur un thread sensible au temps, ce qui risque de provoquer des interblocages.  | Utilisez plutôt l'implémentation asynchrone.  | | 0x8083000F | E\_GS\_PROVIDER\_MISMATCH | Le jeu mélange des appels `XGameSave` et `XGameSaveFiles`, ce qui n'est pas pris en charge.   | Un seul type d'API Game Saves peut être initialisé à la fois dans un titre. De plus, utilisez une seule API Game Saves par titre. Si vous travaillez avec plusieurs titres, il existe des méthodes d'interopérabilité entre les différentes API. <br /><br />Pour plus d'informations, consultez [Interopérabilité entre XGameSave et XGamesaveFiles](/fr-CA/build/core-features/common/game-save/game-saves-walkthroughs-and-samples#interop-between-xgamesave-and-xgamesavefiles)  | | 0x80831001 | E\_GS\_TERMINATEDTITLE\_STALE\_DATA<br />ou<br />`TerminateApplicationAfterSuspend`| Cette information n'est pas exposée par les API destinées aux utilisateurs. Ce comportement est attendu. La gestion de la durée de vie des processus (PLM) arrête le titre lorsqu'elle détecte des données périmées et que l'appareil se reconnecte à Internet. Après un événement de suspension, l'application se ferme. | Cette sortie de débogage n'est pas un bogue. Lorsque le jeu est terminé parce qu'il n'a pas obtenu le verrou de Game Saves à l'initialisation (par exemple, pendant le jeu hors ligne ou lors d'un choix dans la boîte de dialogue de conflit), le système d'exploitation termine le jeu lors de la suspension afin de garantir un état propre au prochain lancement.  |

### Codes NTSTATUS Win32

Avec `XGameSaveFiles`, les codes d'état suivants peuvent apparaître.

| Valeur | Nom | Description pour `XGameSaveFiles` |
| - | - | - |
| 0xC0000106 | STATUS\_NAME\_TOO\_LONG | Le nom du répertoire est trop long. |
| 0xC0000033 | STATUS\_OBJECT\_NAME\_INVALID | Le nom du répertoire contient des caractères non valides dans le service infonuagique. |
| 0xC0000106 | STATUS\_NAME\_TOO\_LONG | Le nom du fichier, y compris le chemin du dossier, est trop long. |
| 0xC0000904 | STATUS\_FILE\_TOO\_LARGE | La taille du fichier a dépassé 64 Mo ou le jeu a dépassé son quota maximal par utilisateur pour les sauvegardes de jeu. |
| 0xC000009A | STATUS\_INSUFFICIENT\_RESOURCES | Le jeu a dépassé l'espace de stockage qui lui est alloué sur l'appareil. |

## Documentation de référence des API

* [XGameSave (contenu de l'API)](/fr-CA/reference/system/xgamesave/xgamesave_members)
  * Fonctions
    * [XGameSaveSubmitUpdate](/fr-CA/reference/system/xgamesave/functions/xgamesavesubmitupdate)
* [XGameSaveFiles (contenu de l'API)](/fr-CA/reference/system/xgamesavefiles/xgamesavefiles_members)
  * Fonctions
    * [XGameSaveFilesGetFolderWithUiAsync](/fr-CA/reference/system/xgamesavefiles/functions/xgamesavefilesgetfolderwithuiasync)
* [xasync (contenu de l'API)](/fr-CA/reference/system/xasync/xasync_members)
  * Fonctions
    * [XAsyncGetResultSize](/fr-CA/reference/system/xasync/functions/xasyncgetresultsize)

## Voir aussi

[Table des matières de Game Saves](/fr-CA/build/core-features/common/game-save/game-saves-toc)


## Related topics

- [Herramientas de Game Saves](/es/build/core-features/common/game-save/game-saves-tools.md)
- [Depuración de Game Saves](/es/build/core-features/common/game-save/game-saves-debugging.md)
- [Reversión de Game Saves](/es/services/playfab/player-progression/game-saves/rollback.md)
- [Límites de Game Saves](/es/services/playfab/player-progression/game-saves/limits.md)
- [Conflictos de Game Saves](/es/services/playfab/player-progression/game-saves/conflicts.md)
