This has not happened before within the last 5 months of my game, it just happened some days ago. Basically player:GetFriendsOnline() now says this message, every player in the game now experiences this problem.
429 usually means there’s some sort of throughput or rate limit i.e. too many requests. Either the API change broke something or you are calling Player:GetFriendsOnline() far too often. Can we see the code around line 105? If it worked before they may have implemented a new limit.
The line Player:GetFriendsOnline() is called about 3 to 6 times in a for loop, the for loop only runs when the player click the arrows on the screen to move on to a new pose (in my Jojo poses simulator game)
And from what I investigated, this error doesn’t break the script, it only pause the script for about 20 - 50 seconds, after that the code below the Player:GetFriendsOnline() keeps on running, so it causes so many unwanted things to happen like characters being morphed in the middle of scenes
Well, if the for loop calls 3-6 times and a user spam clicks the arrows for poses, wouldn’t that allow for spam calls to Player:GetFriendOnline()? The rate limit could be reached if someone spam-click’d.
At the worst, this would be equivalent to 6 calls to GetFriendsOnline times a massive click count. With a clickbot spammer you could get super high CPS.
Also, as to your second point, it is a yielding function that can return an array of up to 200 users, so it will pause the current Lua thread until the result returns.
Well, we don’t know whether they changed anything with the rate limit. This could just be a bug that bubbled up unexpectedly from wacky user behavior. You could rather easily limit the user input (i.e. the MouseButton1Click on the UI arrow or Click on the TouchPart) if you had some sort of boolean value like ClickedAlready = true and checked if the bool was true then do not run the loop that calls Players:GetOnlineFriends()
This could just be a Roblox bug. I’ve been using :GetFriendsOnline() for a while now and I’ve kept the code untouched for a while, just recently this error started occurring. I don’t think it’s an issue of debounce, because my game only calls it client-side twice per minute.
Has anyone fixed this?
I’m calling GetFriendsOnline 5 seconds after a player joins and it throws an http 429 error?
I hooked it up to a gui button and it errors about 90% of the time
Can confirm this happens with minimal use. My client side code calls GetFriendsOnline once per 30 seconds, a 429 error is received on the very first call.
Having the same issue here. This is a new issue and was not a problem last year when I made my Gui.
I was checking GetFriendsOnline() every 5 seconds but it’s still happening when checking every 10 seconds instead. This update has completely obliterated my gui…
Code example:
while wait(5) do
local FriendsOnline = plr:GetFriendsOnline()
end
Unfortunately, you’re gonna have to put up with Roblox constantly removing/changing engine features randomly. Just like they were “planning on removing Experimental Mode” for a while when they just randomly pulled support for it one day. I can pull up one-hundred more examples on how Roblox just arrogantly removes/changes random features, and it just simply pisses me off. There definitely needs to be more transparency regarding these “internal changes” for sure.
Fast forward a year, and this frustrating issue still exists. I’m not aware of any rate limit for Player:GetFriendsOnline() yet it’s still returning an HTTP 429 error even though my code only runs every ~20 seconds. This doesn’t always happen, but I would say it happens most of the time.