HttpService extremely sluggish in studio

In my case, I am sending a few get requests to the following URLs:

api.github.com
raw.githubusercontent.com

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.

And if it helps, here is the repo I am sending requests for content and API to: GitHub - canary-development/CanaryEngine: CanaryEngine is a lightweight and performant game framework for beginners and power-users alike.

2 Likes

Hey @2jammers, thank you for your report – we aren’t seeing indications of slow http requests in our telemetry, and we were unable to reproduce locally (made a plugin which tries to GET from raw.githubusercontent.com/canary-development/CanaryEngine)

Are you seeing this issue on just the two addresses you shared? Do you see this issue with other plugins that make http requests?

1 Like

This issue occurs on other plugins, when I was trying to import from F3X it was also slow.

1 Like

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.

2 Likes

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!

3 Likes

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

1 Like

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

5 Likes

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.

Thank you guys!

2 Likes

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!)

1 Like

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

1 Like

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):

1 Like

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.

2 Likes

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

image

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.

Yeah it seems like and issue with studio presence. I disabled recently and have had no more issues.

3 Likes

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

1 Like

Thanks for informing me about this

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

Do you have any more information to this?


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)

4 Likes

Yup! This worked.
Request time was this:
image

And went down to this after disabling every plugin:
image

1 Like

I can also +1 this, working on a plugin that checks GitHub for updates and I was wondering why it was taking 4+ minutes per request, disabling StudioPresence fixed it.

I’m gonna mark the solution as we can universally agree that it was studio presence causing problems

2 Likes

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