UpdateAsync is returning old values from months ago

Using highly popular data storing module, ProfileService , we have discovered that UpdateAsync is returning old values that are months old. For context, the documentation says “All of the objects, i.e. key-value pairs, in your datastore will be automatically versioned and stored for 30 days”, although the data they receive is much older. We use this data saving method in Blox Fruits, where players are reporting their data being reset to much longer times ago. This is super rare, but we have discovered a handful of these occurrences these last few days.

Example below, where a player lost their Christmas Sleigh item. It seems to happen to players that have been in-game for too long. Possibly because of the autosave getting spammed too many times? We’re not sure.

10 Likes

How Often do you autosave the player’s data, also if you’re using Profile service why do you autosave? you can just hold the profile until it saves when the player leaves

This needs to be looked into ASAP.

We’re seeing a lot of reports in SCP: Roleplay about data loss where players lose progress across the board, not specifically in one team but rather all of them.

This is urgent.

@MetatableIndex are you also using ProfileService? Can you share some info about your use case and the errors you are seeing over DM to help us investigate?

  • The Lua script that is calling UpdateAsync directly/indirectly via ProfileService
  • DataStore name, key name
  • What version the data is reverting to, and if it is reverting only part of the data or the whole object
  • When did you start noticing this

Thanks!

Hey,
In SCP: Roleplay we use a custom data saving solution, and as such do not use ProfileService. This saving is handled through ServerScriptService.DeltaServer.Storage.

When data is updated, we use UpdateAsync. I haven’t found any particular errors in live servers through the developer console (and obviously there are hundreds of servers so I am unable to go through all), so I am relying on reports sent by the community.

One of the main points where the data loss can be found is in the 1742264997|Data datastore, with player objects saved in the player_UserId format.

The reports seem to have started at October 8.

Error Reporting (god bless for this feature!) shows some errors relating to DataStoreService:





Is ProfileService prone to errors? I think we should know if there are any caveats

I’ve been seeing a lot of errors like this in live servers:


These errors are worrying. This didn’t use to happen until around the times reported in this topic. We already handle errors and whatnot, but it’s definitely something I’m reporting either way just in case.

1 Like

Following up on this, we followed up with both @mygame43 and @MetatableIndex to understand their use cases. There is no bug on the UpdateAsync side that can cause the API to return old data from months ago.

Thanks for responding to our questions in DM and fixing the bugs in your code.

1 Like