My plugin makes heavy use of HttpService in order to function correctly, but for the past few weeks its been really slow. This is very disruptive to my workflow and I really hope it gets fixed soon.
Reproduction Steps
Make a HTTP request within a plugin
Print the results and compare times
Expected Behavior
HttpService should at tops only take 45 seconds to get all of the data from these 3 addresses.
Actual Behavior
HttpService sometimes takes almost 4 minutes to complete a single request, despite no duplicate requests being made. Each number is how many times it was called.
The above took 6 minutes to complete, which is a whopping 2 minutes per request.
Issue Area: Studio Issue Type: Other Impact: Very High Frequency: Constantly
Hi lolmansReturn, sorry about the slowness! We are actively looking into this now. Could you help us with more info on how you use the HttpService to better debug this? For example, the url of the endpoint you are calling, the payload size, are there any failure or error messages ever, etc.
Also, if it’s been a few weeks for this, any metrics / logs / graphs on your end would also be helpful! Feel free to dm me on those info if it’s sensitive and you want to keep it private.
And no, there have been no failure / warning messages at all, it’s just really slow.
I haven’t really recorded any metrics, but I have noticed it has gotten slightly better over the weeks.
I’ve found that if you reopen studio it will actually speed up requests again, but if you wait a little while it will go back to being extremely slow.
Does the slowness only occur in studio, or is there a slowness present when accessing the URLs through other methods, such as by accessing the web page itself or using a different programming language (e.g. Python) to access the URL.
If you want to test python, here is some simple code to send a get request to a URL:
import requests, time
url = ""
print("Sending get request")
initialTime = time.time()
Request = requests.get(url)
finalTime = time.time()
print(f"Get request completed, with status code {Request.status_code}, in {round((finalTime - initialTime)*1000)}ms")
You can test multiple URLs in a row by just copying and pasting the code a few times (not the import bit though).
Test with the same URLs you are using in studio. This will just ensure that it IS actually a studio bug.
I had this same issue. Happened on my laptop and my desktop. When connected to my phone hotspot it worked like a charm, but my hooked up to my ISP and it was crawling to load up endpoints. What I finally narrowed it down to was my plugins.
My guess is that Roblox handles HTTP requests one at a time, and when hitting Play Solo the plugins try to request something that throttles the whole chain. Try that and see what happens!
This appears to be caused because of the http request limits being enforced at the session level rather than the plugin level; my experience is currently unable to start up because my http requests are being exhausted out by plugins which have to restart when hitting play solo, ideally plugins should use a different limit entirely as otherwise, using a plugins is a death sentence if you use HttpService elsewhere in your experience. I have been able to reproduce this via the following (private) personal plugin: Custom Rich Status - Roblox and calling a HttpRequest immediately on a Play Solo
Thank you guys for the replies. This does seem to be caused by the limit of 500 req/min restriction imposed by HttpService. Plugins can eat up this limit which could affect game script requests.
We are investigating fixing this behavior. Thank you for the report
I also wanted to cross-post another behavior that might be conflating the problem here. If certain plugins or game scripts are making requests that utilize long polling, or generally requests that by nature take a long time, this can currently stall next requests.
My current suggestion would be to evaluate what kinds of requests are being made to see if they might disturb this limit while we investigate a better solution.
Greetings! Weighing in on this because I am also experiencing HttpService being extremely slow. I’m working on a system that pulls a relatively small amount of data from an API, but requests are taking almost a minute. This is only occuring on Windows, making the same requests on macOS return within a second or less. The data returned is something along the lines of
{
"success": "true",
"message": "..."
}
Edit: apologies for bumping this, read up a bit and found it was plugins for me as well.
(So people watch your plugins!)
Not sure about anyone else but for me personally I haven’t got anymore slow downs at all for the past few days. I won’t mark a solution until I can confirm a few other people are no longer having this issue as well.
For context, Rojo seems to sync instantly regardless of how long Roblox Studio has been open for
Thank god I’m not the only one experiencing this, I was about to factory reset my computer to try solving the issue.
I work on a project that is fully centered around HttpService because it makes heavy use of requests to my self-hosted database and testing in studio has become so much slower because of this issue with HttpService.
I was hoping it would get solved anytime soon but it hasn’t and I remember when it first surfaced the issue existed for a while then went away and then finally came back for good.
Seen here, first talked about the issue then edited saying it was gone (I can’t make bug report topics):
New observation, see if you have the StudioPresence plugin or any plugin with HTTP requests allowed.
I disabled StudioPresence which I had and HttpService works like a charm now.
Not sure if everyone will find success in this though and I’m still skeptical if this fully fixes it but for now I can do things.
I cannot replicate this at all, have you tried checking the quality of your network connectivity?
local HttpService = game:GetService("HttpService")
function createRequest()
local success, result = pcall(function()
return HttpService:GetAsync("https://atk.wav.blue/resolve/WaviestBalloon")
end)
if success then
print(`Result: {result}`)
else
warn("Request was dropped!")
end
end
for i = 1, 50 do
local startTimer = DateTime.now().UnixTimestampMillis
createRequest()
print(`Return called after {DateTime.now().UnixTimestampMillis - startTimer}ms`)
end
Currently using Studio under Proton and cannot replicate this issue, it could be a Windows-based issue and not related to Studio, again, it would be good to check your network connectivity and if your operating system is experiencing packet loss.
THANK YOU LOL I tried running a script I had and it was taking 5-20 seconds for each request to go through… turns out it has something to do with that StudioPresence plugin. No clue what it’s doing for it to make all HttpService requests throttle so badly @arxweb
StudioPresence only communicates with your local client to the server and the server then communicates to Discord via an API
I do not understand why porting a local client would cause any issues though. I’ve been using StudioPresence for a long time however I have never ran into this problem
I assume ROBLOX throttles requests even if it is just for the local host?
I am going to publish an optimization for StudioPresence regarding HTTPS service tomorrow which should fix your issue and also improve the responsiveness of the plugin, thanks for tagging me in this thread. Look out for v3.0.2 (you will only have to update your roblox plugin, not the server)