Loss of V-Bucks when canceling purchase

Summary

If a player clicks buy and cancels during the purchase loading time, then they lose their V-Bucks and are told that the purchase was not validated.

Please select what you are reporting on:

Unreal Editor for Fortnite

What Type of Bug are you experiencing?

Other

Steps to Reproduce

Go to a map, for example in my example I’m using Escape Tsunami For The Brainrot.
Go to the purchase page, click “Buy” and confirm.
During the checkout process, click “Back”.
You lost your V-Bucks and received nothing because the if statement in verse code failed.

Expected Result

You do not receive the item and you do not lose your V-Bucks.

Observed Result

You do not receive the item and you lose your V-Bucks.

Platform(s)

All

Island Code

7113-0641-3989

Upload an image

Video

Additional Notes

I’ve attached a video demonstrating the reproduction method and an image of the associated code verse.
This is not due to a lack of space in the player’s inventory or anything else related to our map, as we perform all checks beforehand.

Clarification : in the video I show a successful case followed by an error case

The team is investigating. Thank you for reporting.

It is because you are closing the dialog manually , making the BuyOffer return “false”, but the purchase itself is in fact correctly happening, you are just not handling it properly in the code…

The dialog was not closed due to offer success (returning true), was closed manually before that (returning false), and your code is not handling that.
(The purchase does in fact succeed correctly, but you are not acocunting for it since you are handling a single specific case but not all possibles - The description on the digests are misleading, probably should be changed to avoid confusion)


The product should still be correctly granted without issues, is just a problem due to the way you are listening for the purchase in your code. Here is a fix for you case:

  • Don’t wait the return of “BuyOffer()” checking the true/false return, it is related to the offer popup dialogue closing manually/automatically, and not exactly purchase success/failure state… (It can be closed manually, returning false, before the purchase is complete)"

  • Instead, use GetEntitlementsChangedEvent, it will always properly receive an signal when the purchase is completed, even when/if the offer popup dialogue is already closed manually before the purchase success.

Here, just for example, I changed the description to be more accurate to how it behaves (just for better understanding of it):

Also, if your map handles player storage properly (eg. checking owned entitlements during gameplay or when joining), just leaving and re-joining the map would “fix” it, even in that current state with the wrong purchase handling…


At the end, like I said, you should just use the GetEntitlementsChangedEvent to handle entitlement purchase/count changes, instead of relying on offer dialog popup display state… This way you will never face side-effects or weird edge-cases to cover due to partial or incorrect offer handling on the code…

3 Likes

Yes, indeed, but the documentation isn’t very clear. If false is also returned during cancellation, when the player clicks “cancel” during processing, it should also cancel the debiting of V-Bucks.

I’ll modify my code, but it doesn’t seem clear.

Agreed, it should cancel the entire purchase and not just close the UI

FORT-1061551’s status has changed to ‘Ready for QA’. A member of the QA department is investigating the issue.

hi @yougow ,

The documentation has been updated to reflect the new Verse methods after 9 January 2026 code updates

Handling Purchases - Creating Items and Offers in Fortnite | Fortnite Documentation