Add MarketplaceService:CancelPrompt() to Dismiss Active Developer Product Prompts

When a developer triggers MarketplaceService:PromptProductPurchase(), players can keep the purchase prompt open indefinitely. This means they may complete the purchase even if the developer no longer intends the product to be available (for example, after a timer expires, when the player state changes, or for any other reason).

Although developers can implement server-side validation to deny benefits after the fact, this creates a frustrating user experience: players may spend Robux but receive nothing.

A clean solution would be to add a new API: MarketplaceService:CancelPrompt()

This function would immediately close any active purchase prompt on the CoreGui, giving developers explicit control to cancel product offers at any time.

There is currently a tricky workaround that developers use, but it is not ideal:

local GuiService = game:GetService("GuiService")

local function closePrompt()
    GuiService:InspectPlayerFromUserId(1)
    GuiService:CloseInspectMenu()
end

Instead of relying on such hacks, it would be far more consistent and safe if Roblox provided a built-in way to dismiss product prompts. This would prevent wasted purchases, improve player trust, and give developers better control over product purchase flows.

11 Likes