Hello! I’m trying to use :GetVersionAsync() to rollback one of my play testers’ data due to it miss-migrating as far as I can tell when I tried to update the game to add more stuff to save.
This is the snippet I’ve tried using for going through older versions of their saves:
local MaxDate = DateTime.now().UnixTimestampMillis
local MinDate = MaxDate - 86400000 * 2
local Pages:Pages = PlayerDataStore:ListVersionsAsync(TargetId, Enum.SortDirection.Descending, MinDate, MaxDate, 10)
local Page = 0
while not Pages.IsFinished do
for i, v in ipairs(Pages:GetCurrentPage()) do
local Data = {}
local Got
repeat
local Succ, Why = pcall(function()
Got = PlayerDataStore:GetVersionAsync(TargetId, v.Version)
end)
if not Succ then
print(Why)
continue
end
until Succ
if Got then
Got = DecodeBinaryString(Got)
DecodeSave(Data, Got)
end
if #Data.Characters > 0 then
warn(Page * 10 + i)
warn(Data)
else
print(Page * 10 + i)
print(Data)
end
end
Page = Page + 1
Pages:AdvanceToNextPageAsync()
end
print("Complete!")
and this is the error I get after exceeding their 13th backup:
502: API Services rejected request with error. HTTP 500 (Internal Server Error)
Don’t worry about the functions I use for compressing and decompressing, they aren’t the problem.
Know that I compress everything into binary strings so there can be things like NULL characters etc. and other control characters within the save but none of them ever exceed 127 incase that effects anything!