When a user buys a product in your game, we run the "purchase handler" function you've defined in your game code.
Your purchase handler will normally grant an item or feature to a player based on which product ID they bought.
However, if your purchase handler fails (for example if their inventory was full and you didn't handle that scenario) it will count as a "grant failure" and be displayed in the Products page on the creator portal so you can fix the issue.
Grant failures will be automatically retried each time the player joins until they succeed.
If your purchase handler was successful, but for some reason the user lost the item due to a game bug or otherwise, you can re-run the purchase handler for that user by marking the purchase as ungranted in the Editing/Viewing Player Data"Purchases" section.