DataStore 502 API Rejected for specific key

I recently had a player report that they are unable to load their save data. I went to investigate and have realized that their data is constantly returning an InternalServerError on an attempt to SetAsync.

2025-08-02T00:38:00.993Z,507.993835,5474,12 [DFLog::HttpTraceError] HttpResponse(#2611 000001CC038491E8) time:4799.3ms (net:4799.2ms callback:2.0ms timeInRetryQueue:0.0ms)status:500 Internal Server Error bodySize:55 url:{ "https://gamepersistence.roblox.com/v2/persistence/3666294218/datastores/objects/object?datastore=RELEASE001-SlotProfile&objectKey=global%2FSlot_68210261927_Player_124528721_0_-1" } ip:128.116.48.3 external:0 numberOfTimesRetried:0
DataStoreService: InternalServerError: An internal server error occurred. API: SetAsync, Data Store: RELEASE001-SlotProfile

This has been happening for the user for 4 days as of now. I don’t know if this is the first time it’s happened, but I wouldn’t be surprised if it wasn’t.

This consistently happens for this key. My save system is very intricate, it’s a fork of ProfileStore with a compression algorithm built on top, so I’m unable to create a repro file. I have no clue why this would be happening. I am able to give studio access if need be.

Experience: Oaklands 🌳 [Tycoon] - Roblox
Tested on: Studio, Team Test, & Live Experience

Expected behavior

The data should successfully save and no errors should happen.

1 Like

I’ve also come across this issue and messed with the key

The affected key seems to become more unreliable with additional non repetitive data filling a table with hello worlds works fine but filling it with math randoms becomes super unreliable around 2mb and higher

I ran RemoveAsync on the key and then SetAsync and it seems to work as intended now.

I’ve taken a look at my error report analytics and it seems this started on 7/28/25 UTC for me.

1 Like

This has started happening to a second player in my community. This makes the game unplayable for them.

2025-08-06T13:32:49.281Z,133244.281250,7de8,12 [DFLog::HttpTraceError] HttpResponse(#67212 000002054E372678) time:4165.5ms (net:4165.5ms callback:3.0ms timeInRetryQueue:0.0ms)status:500 Internal Server Error bodySize:55 url:{ "https://gamepersistence.roblox.com/v2/persistence/3666294218/datastores/objects/object?datastore=RELEASE001-SlotProfile&objectKey=global%2FSlot_43477843270_Player_459968348_0_-1" } ip:128.116.48.3 external:0 numberOfTimesRetried:0
2025-08-06T13:32:49.281Z,133244.281250,6038,6 [FLog::Error] Error: DataStoreService: InternalServerError: An internal server error occurred. API: SetAsync, Data Store: RELEASE001-SlotProfile

Thanks for the report. We’ve verified that the data of both keys mentioned is stored and available. It’s possible that you’re experiencing transient issues reading and writing keys with large values. Are you able to retrieve the second key with GetAsync(), or is the same failure always reproducible?

1 Like

I’m able to consistently retrieve the data from the keys, it’s just when a SetAsync is attempted that it fails.

=#game:GetService("DataStoreService"):GetDataStore("RELEASE001-SlotProfile"):GetAsync("Slot_43477843270_Player_459968348_0_-1") > 0

The SetAsync consistently fails when I attempt to re-apply the existing data.

local DS = game:GetService("DataStoreService"):GetDataStore("RELEASE001-SlotProfile") 
local ExistingData = DS:GetAsync("Slot_43477843270_Player_459968348_0_-1")
DS:SetAsync("Slot_43477843270_Player_459968348_0_-1", ExistingData)

Setting new data will result in it successfully going through.

local DS = game:GetService("DataStoreService"):GetDataStore("RELEASE001-SlotProfile")
local ExistingData = DS:GetAsync("Slot_43477843270_Player_459968348_0_-1")
DS:SetAsync("Slot_43477843270_Player_459968348_0_-1", "Blank_Data")

Doing this has made it so now I can’t restore their old data due to the constant API error of trying to restore it. I have a back-up saved from the Data Store Manager.

local DS = game:GetService("DataStoreService"):GetDataStore("RELEASE001-SlotProfile") 
local ExistingData = DS:GetVersionAtTimeAsync("Slot_43477843270_Player_459968348_0_-1", 1754513939000) 
DS:SetAsync("Slot_43477843270_Player_459968348_0_-1", ExistingData)

I tried restoring the data via a POST request through the Open Cloud API and received this error:

https://apis.roblox.com/datastores/v1/universes/3666294218/standard-datastores/datastore/entries/entry?datastoreName=RELEASE001-SlotProfile&entryKey=Slot_43477843270_Player_459968348_0_-1

Looking into it. What’s the format of your data? It doesn’t appear to be a standard Luau / JSON table. Are you writing your own encoding and decoding?

1 Like

Currently I’m using someone’s implementation of LZW for encoding and decoding, but I plan on switching to a different encoding approach that takes advantage of how buffers are JSON Encoded and Decoded.

I think if I flipped my flag for my new encoder these errors would stop happening, but I didn’t want to as this may happen again in the future.

Thanks! That’s very helpful. Can you try again now, please? We’ve tweaked some things on our end.

1 Like

It appears to have worked! Thank you so much!

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.