WHAT HAPPENS:
A V-Bucks entitlement on my published island, declared Consumable=false / MaxCount=1 (a one-time permanent unlock), is being lost after purchase.
The buyer is charged and the unlock works for the rest of that session. But on their next join, GetPurchasedEntitlements returns 0 for it.
The island then shows the offer again, and re-purchasing silently fails: the purchase dialog opens, but confirming does nothing. BuyOffer returns false, no V-Bucks are charged, and no entitlement change event fires.
The account ends up permanently stuck: they paid for the unlock, no longer have it, and can never buy it again.
POSSIBLE CAUSE:
My Verse code called ConsumeEntitlement after the successful BuyOffer. Per the digest docs, ConsumeEntitlement “Fails if: The entitlement is not consumable” — so this call should be a harmless no-op here.
But the entitlement is demonstrably ending up at count 0: one affected account was later able to purchase the same MaxCount=1 offer a second time (and was charged again), which should be impossible if it were still owned.
TIMELINE:
This began with my first island update published after v41.30. The identical Verse code runs on my other island (5383-4620-2241), which has not been re-published recently, and the same offer works correctly there.
Please select what you are reporting on:
Unreal Editor for Fortnite
What Type of Bug are you experiencing?
Other
Steps to Reproduce
- Declare an entitlement with Consumable=false and MaxCount=1, plus an
entitlement_offer for it (V-Bucks priced), in an island uploaded on the current
Fortnite version. - In Verse, sell it with BuyOffer(Player, Offer); after PurchaseResult is true,
call ConsumeEntitlement(Player, Offer.EntitlementType). (Per the documentation
this call should fail for a non-consumable.) - Publish the island. On an account that has NEVER bought this offer, join the
live island and purchase the offer. Purchase succeeds and V-Bucks are charged. - Leave the session and rejoin the island.
- Call GetPurchasedEntitlements(Player, …) — it returns 0 for the entitlement.
- Present the offer again via BuyOffer and attempt to purchase.
Expected Result
Either the entitlement remains owned across sessions (ConsumeEntitlement failing
harmlessly on a non-consumable, as documented), or — if the entitlement can be
lost — the re-purchase attempt should either succeed or fail with clear feedback.
A player should never be charged for a MaxCount=1 unlock and end up in a state
where they own 0 of it and can never purchase it again.
Observed Result
After rejoining, the entitlement is gone (GetPurchasedEntitlements returns 0).
The re-purchase dialog opens normally, but confirming does nothing: BuyOffer
returns false, no V-Bucks are deducted, no GetEntitlementsChangedEvent fires.
This repeats forever. Reproduced deterministically with a brand-new account on
the first rejoin after purchase. Days later, one affected account WAS allowed to
purchase again (charged a second time for a MaxCount=1 offer) and the cycle
repeated.
Platform(s)
Tested on PC
Island Code
0242-1196-2261