Cannot Publish - Verse Persistence Error (only visible on publish, not showing in any local logs)

Summary

Game runs fine in UEFN session, and has no issues validating during memory check or uploading private version. However, private versions can’t be published. I get the following error during the Verse Validation step:

You can’t publish this version because your Verse persistable data is not backward compatible with your current active version. Please publish a new version from UEFN that is compatible with your current active version.

VerseBuild: Error: C:/build/FortniteGame/Plugins/GameFeatures/a0858128-4d0c-81d7-5137-9db9452c621a/Content/poker_setup_device.verse(533,12, 533,16): Script error 3588: Ambiguous identifier; could be projects.epicgames.com._edfd67624065a874602c4296772e1b45.poker_setup_device.ShowBarrier.Show or Fortnite.com.Devices.creative_device.Show
errors.com.epicgames.cookplugin.cookfailure

Please select what you are reporting on:

Unreal Editor for Fortnite

What Type of Bug are you experiencing?

Publishing

Steps to Reproduce

  1. Attempt to publish any of the last dozen or so private version pushed. They all show the same Verse Validation error.

Expected Result

I would like to be able to publish the island!

Observed Result

You can’t publish this version because your Verse persistable data is not backward compatible with your current active version. Please publish a new version from UEFN that is compatible with your current active version.

VerseBuild: Error: C:/build/FortniteGame/Plugins/GameFeatures/a0858128-4d0c-81d7-5137-9db9452c621a/Content/poker_setup_device.verse(533,12, 533,16): Script error 3588: Ambiguous identifier; could be projects.epicgames.com._edfd67624065a874602c4296772e1b45.poker_setup_device.ShowBarrier.Show or Fortnite.com.Devices.creative_device.Show
errors.com.epicgames.cookplugin.cookfailure

Platform(s)

Windows

Island Code

3520-6301-2193

Additional Notes

Private Island Code: 3520-6301-2193
Public Island Code: 0004-2034-3582

The island has not been working for a while due to various verse/fortnite changes that I only recently was able to resolve. I’m not actually using persistence (intentionally at least), and the class (variable?) mentioned (poker_setup_device.ShowBarrier) has actually been renamed, so I really have no idea what is going on. Would love any assistance, was hoping to show this off some at UnrealFest next week!

Just for fun, I tried creating a Playtest based on the above Island, and that worked fine…I was able to join the playtest without issue. It’s just when I go to publish that the issue occurs. Any help would be greatly appreciated!

Not sure it matters, but the playtest island code is: 7881-0223-0890

Okay, I think I have found the root cause. The poker_setup_device contains a method called ShowBarrier, which has a parameter called Show.

    ShowBarrier(Seat: int, Barrier: creative_prop, Show: logic) : void=
        if(Show = true) :
            if(Location:= AIBarrierLocations[Seat]) :
                if(Barrier.TeleportTo[Location, IdentityRotation()]) :
        else :
            if(Barrier.TeleportTo[vector3{X:= 0.0, Y:= 0.0, Z:= 5000.0}, IdentityRotation()]) :

When this code was first written, that was perfectly valid. However, Epic later added a Show function to creative_device, which poker_setup_device is descended from, so now the Parameter show is ambiguous between that param and the Method in base class creative_device.

SO, that SHOULD be an easy fix…I can just change the name of the parameter Show to something else. But I already did that…that’s what was so confusing. I’d changed the name of the param to ShowBarrier, but whatever the publish process is doing is not seeing that change.

I can change the param name back to Show, and I see the same Verse ambiguity error locally the the publish gives. But renaming the Show parameter doesn’t eliminate the issue. It’s like the Publish is comparing code that is no longer there, from the previously deployed version maybe?

So I have NO CLUE how to fix this. I’ve tried renaming the parameter, I’ve tried completely removing the method, nothing seems to make any difference. I THINK the reason nothing works is that the Publish functionality is somehow trying to reference the previously deployed code, which was valid when deployed but became invalid due to a fortnite/verse/UEFN version update. In short, nothing I can do anything about.

Please, someone at Epic, reach out if there is any way to resolve this. I’m desperate for a solution. (Obviously non-epic people are free to reach out too!)

Referencing @Flak, @kalishane_eg and @Amanda.Schade because I saw their names helping with vaguely similar issues in other threads…I’m really stuck here, can’t find a way to fix this without help.

Just completely removed poker_setup_device from game just as test. Verse file is gone in latest version and still getting same error.

So that kind of tells me there’s nothing I can do to fix this in code, because it’s not the code I’m updating that’s causing the issue. The publish process must be somehow trying to recompile the old version, which won’t work in the current version of Fortnite.

There has to be some way to tell the publish process to just ignore the old version and replace it completely. Does anyone have any idea how to do this? Is there some sort of functionality in the Content Service site to do this? I can find a way to view Staged Files, but not to edit them…if I could just edit the staged poker_setup_device.verse file, I’m almost guessing that would help.

So, I went through the time and effort to recreate the whole game as a new Island. That seemed like the only way forward without more help, and I managed to get it done.

However, now there’s a new Issue…apparently the Creator Rules have changed since I first published my island, and the rules around casino-like activity are more strict. What a bummer…I was hoping to show this off to other UnrealFest 2024 attendees this week, but now I don’t seem to have a path forward. If anyone from Epic can direct me to the right person to talk to about Creator Rules, I’d love to chat. I’m not looking fo circumvent any rules, just trying to understand if there’s any way to get a non-real-money gambling Poker game approved.

More Details Here:

https://forums.unrealengine.com/t/urgent-question-about-creator-rules-and-card-games/2046323

I do understand that there’s probably people out there trying to scam people into shady online gambling sites. If you look at any of my posts about PokerNite, I think it’s pretty obvious that’s not what this is…it’s just a way to play poker for fun in Fortnite. I like the idea of silly characters sitting around a table emoting and playing cards. From the feedback I got, other people like the idea too. So if there’s a way to make it happen, I’ve love to chat about it.