Persistence Related Inventory Connectivity Issues

We have identified a bug associated with Island Persistence that can cause users to fail to write persistent data.

Islands containing very high numbers of persistent creative devices can experience write failures to the underlying save data backend services. These errors can also be triggered by adding Verse Persistent data to such islands.

We have identified a fix for this issue and it will be included in the 29.10 release. In the meantime, we recommend that you playtest any island changes that involve adding new persistent creative devices or changes to Verse persistent data. If you encounter connectivity issues in playtests you should not publish those changes publicly.

If you experience data write errors or connectivity issues in your island after adding Verse Persistent data or increasing the number of persistent devices in your island, please report the bug here.

1 Like

Hello!

We recently published a project this afternoon, and we went to upload a new version to change some matchmaking portals and yet now we are failing the backwards compatibility check even though we had made 0 changes to Verse, let alone the persistent data.

Any help would be great because we can no longer update our published island!

chrome_goIIvmweed

You probably can solve this by removing the constructors and creating the clone in separate function

Yup! Just checked and it seemed to be this function causing the problem:

MakeBigInt<public><constructor>(Value : int)<transacts> := big_int{
            let:
                var ValueDigits : []int = array{}
                var PositiveVal : int = Abs(Value)

            block:
                if(PositiveVal > 0):
                    var Index : int = 0

                    loop:
                        if(PositiveVal <= 0):
                            break
                        if(Digit := Mod[PositiveVal, 10], ValQuotient := PositiveVal / 10):
                            set PositiveVal = Floor(ValQuotient)
                            set ValueDigits = array{Digit} + ValueDigits

            Digits := ValueDigits
        }

So we can’t use any constructs just like docs tell us to do?

To verify, you have a workaround of removing the constructor function? I’m able to reproduce locally, so I should have a fix out soon. However, it may still take some time to get to you due to our release schedule.

The issue here is an interaction between overloaded constructor functions and backwards compat checking. If you do not overload constructor functions, you shouldn’t see this issue. @pauly.G, an alternative workaround to removing the constructor functions entirely is to rename one of your overloads.

1 Like

Hello

Was the fix for this persistence issue included in the 29.10 release? We didn’t see it in the release notes and wanted to confirm or get a new ETA if available.

Thank you.