HttpService extremely sluggish in studio

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

  1. Make a HTTP request within a plugin

  2. 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.

image

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

1 Like

We’ve filed a ticket into our internal database for this issue, and will come back as soon as we have updates!

Thanks for flagging!

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.

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.

1 Like

Hey @lolmansReturn, 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?

This issue occurs on other plugins, when I was trying to import from F3X it was also 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.

1 Like

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!

2 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

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

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

1 Like