MarketplaceService.ProcessReciept not Repeating When Purchase Failed

I am working with developer products and I have come across an issue with the ProcessReciept callback. It is supposed to keep calling the callback until you return ProductPurchaseDecision.PurchaseGranted. However, it is not repeating; even when I don’t return PurchaseGranted. Why is this happening?

Note: I am testing in Roblox studio at the moment, not in the live game. Could it be just an issue in studio? If so, how can I test it properly?

Additionally, I have another question to ask while you are here. Does ProductPurchaseDecision.NotProcessedYet cancel the transaction or does it call it again like when you return nothing?

Thanks

1 Like

So I did some testing. It seems test purchases in studio don’t repeat if they fail. In order to test, you have to do it in a live game. In my case, I published it to a new place for testing. Unfortunately, that means you have to buy it to test it. I just made the price 1 Robux and accepted my loss of about 5 Robux overall after several tests. Hopefully, if you find success, the product will make those Robux back!

As for the second question, it seems NotProcessedYet behaves the same as returning nothing.

One observation that might be worth noting is that it doesn’t repeat instantly after a fail. It only seems to repeat when the player joins the game again or when they buy something else.