All datastore budgets (except for OnUpdate) are incorrectly reporting zero both in the developer console and when called via script. This is occuring in all games regardless of actual datastore activity. This is not occuring when running in test mode in the studio, values are reported correctly in the studio.
This bug is not affecting saving/loading, despite values being reported zero I have been able to save data and load it in games. This is happening to all of my games and the games owned by my group, as well as games owned by my co-developer. Previously these should have reported values much greater than 0, even around 600 in some cases. For specifics, this game (Dance Your Blox Off) is where I noticed the bug first. It is running a version that has not been edited since last week and was functioning correctly yesterday. However, since this is even happening in games that havenāt been changed for weeks I do not believe it is game specific.
In addition, when this code is run through the command line in game it always returns 0 which is incorrect: game:GetService(āDataStoreServiceā):GetRequestBudgetForRequestType(Enum.DataStoreRequestType.UpdateAsync)
This bug has been occurring since about noon today.
Here is a screenshot:
Datastore Budgets in an empty-ish game (the datastore is rarely being used here, this problem has also never occured before and this game has not been updated for weeks). You can see this place here.
However, unlike your place, Adopt Me has been having major issues with loading data. Iām still trying to figure out what is going on (we havenāt changed anything for a while on our end), but itās gotten so bad that weāve had to shut down our game temporarily. If someone could shed some light on what exactly was changed, that would really help me debug the right code. Thanks!
For reference, hereās our average playtime to help visualize when the issue started happening:
The DataStore Budget tab was blank for me until the game used DataStoreService (via dev console ā no scripts in place), but that turned out to be advantageous because I found out a little about the bug. As seen in the image below, the first call to the API returned the correct value, but subsequent calls (all request types aside from OnUpdate) all returned 0. I suspect this is related to caching.
This bug is now ROBLOXCRITICAL. @Mimi_Dev can you edit it into the title?
Do you use GetRequestBudgetForRequestType in your DataStore interface at all? It may be refusing to load/save because it thinks there are no requests available.
We donāt use GetRequestBudgetForRequestType ever. We do have a lot of fancy retry logic though. Perhaps itās conflicting with ROBLOXās new datastore built-in retry logic somehow?
I canāt seem to access it in a script as well, unless Iām doing something really stupid
game:GetService(āDataStoreServiceā).AutomaticRetry = true
14:53:24.183 - AutomaticRetry is not a valid member of DataStoreService
14:53:24.183 - Stack Begin
14:53:24.184 - Script āServerScriptService.ServerScripts.PlayerManager.SaveMā, Line 37
14:53:24.184 - Stack End
Yeah I followed that same train of thought earlier - the post seemed to suggest that that property was already live, but it isnāt. I do appreciate you trying to help though
Just curious, but what was the max datastore budget updated to? If itās low, would that be the reason why Adopt Meās datastores were failing, since Adopt Meās max player count is 70 and does a lot of datastore requests per server?
So, the max datastore budget has been updated to 3 minutes worth of requests based on per place limits documented in the wiki. We plan to gradually reduce this number(max budget) to be more inline with what developers can reasonably expect to send.