RequestStreamAroundAsync Not Working On Any Emulated Device?

I am having this issue on every single emulated device, I go into detail what this issue is below.

The results (even with a timeout set!) is that it hangs and yields the script forever. I have encountered this in all emulated devices (e.x. Ipad, Iphone, Xbox, etc). It’s as if it’s waiting to send a packet or something similar and once that’s been taken care of it then starts the timeout. I have no idea though.

The code for this is fairly simple:

player:RequestStreamAroundAsync(desiredPosition, 2) -- Added the timeout because it should represent that the yield ends after 2 seconds
character:SetPrimaryPartCFrame(desiredCFrame)

Repo:

  1. Create a server script and copy the code I have above and replace with meaningful coordinates
  2. Go into any emulated device (IPad, IPhone, XBox, etc.)
  3. Press play and see if your player is teleported: It won’t be because it yields forever regardless of the timeout.
4 Likes

So you think that its a bug rather than an error? Go through the main things (Output etc). If that’s all good and your 100% sure that everything is fine then maybe it is a bug. I am actually not sure but if you think that all is fine maybe have a bug report because this could potentially be a bug.

If you think its occuring to others it’s most likely a glitch/bug.
Regards: Ulxqra.

Please, next time when you post to a topic similar to this only reply with something that corresponds to what is being inquired by the author or has significant relation to the original post.

I’m aware that I can determine the likelihood of this being a “user-error” by checking the output and related tools such as the debugger. However - as mentioned in the post - this yields (as far as I am concerned) forever. I could not have reached this conclusion without testing this with prints, the debugger, and other methods.

I appreciate your reply but it’s not suitable for this thread - thanks anyways.

1 Like

I can probably help, whats the main point of this script to do?

Reread the topic and follow-through with the reproduction steps.

This isn’t to aid me with my script - this is to determine whether or not what I described in my post is a Roblox bug or not.

The goal is to determine whether or not emulated instances of devices within Studio are infinitely yielding when requesting to stream a location to the player via the server.

If you could possibly attempt to reproduce this bug given the steps and code I posted in my original post that’d be great and I would love to see if this is an issue for other people!

1 Like

If others are experiencing this, I would recommend making a bug report.

Yes, and I created this post to ask others to attempt this so I can confirm whether or not it is a bug. As far as I am concerned it’s only happening to me, but that’s because I don’t have any PROOF of OTHER PEOPLE EXPERIENCING THIS.

I’m going to stop replying to these for now - please only reply if you have managed to do the repo steps correctly and either get a different result or similar.

2 Likes

Reproduced the same issue here - seems like having a model is irrelevant, I used the following code with StreamingEnabled and it works on regular Studio, but it gets stuck on any emulated device

Code Example Used
-- Getting a Player

local Players = game:GetService("Players")

local player

Players.PlayerAdded:Connect(function(added)

player = added

end)

wait(10)

-- Position Values

print("Started")

local pos = Vector3.new(83.32, 0.5, -85.65)

local newcf = CFrame.new(pos)

-- Streaming

player:RequestStreamAroundAsync(pos, 2)

print("Did Stream")

-- Teleporting

player.Character:SetPrimaryPartCFrame(newcf)

print("Did TP")

Output Result: https://gyazo.com/c3c0fbfbef03365dc3fe44666d62538c

Attached the studio file to this post as well. The 2 second timeout doesn’t seem to apply here either.

SE_Problem.rbxl (21.1 KB)

1 Like

Thanks for the report! We’ve filed this internally and we’ll follow up here when we have an update for you.

Recently started getting this issue.

When on a desktop it works, but emulating a device it will not work. I’ve also had a friend join a live server via mobile and it wouldn’t work.

I did a repro on a new file with Player:RequestStreamAroundAsync() and it worked fine. It just currently does not work on my place file.

I ran into this issue just today while testing my loading screen for emulated devices. I’m assuming that it’s related to the amount of simulated memory(Would occur with any emulated device with less simulated memory than the Samsung S7’s), try looking into that.

I ran into this issue today while trying to use this function in a game with StreamingEnabled.

Here is exactly how to replicate this bug:

  1. Open a new file and turn on StreamingEnabled in the workspace. I put my MinStreamingRadius to 64 and Max to 512
  2. Create a Server-side script with this line of code:

player = player object
Position = Any Vector3 position outside of the streaming radius
timeOut = any number

print("requesting")
player:RequestStreamAroundAsync(Position,timeOut)
print("finished!")
  1. Testplay the game using ANY emulator

The output will hang on “requesting” forever, and not give any error at all.
While testplaying WITHOUT using an emulator, the function runs fine, outputting “requesting” and “finished”.

I also noticed that, on mobile device emulators AND on actual mobile devices, the Terrain in places with StreamingEnabled render poorly, and this did not used to happen a few months ago. Sometime around August or September, the emulator began to really struggle when rendering terrain in StreamingEnabled places. Here are examples:

StreamingEnabled On, playing on Computer:

StreamingEnabled On, playing on emulated iPad in Studio after waiting for over a minute:

I’m not sure if this is a bug or intentionally set up to emulate a less powerful device, but this did not used to happen while emulating places with terrain for a mobile device.

EDIT: I have tested RequestStreamAroundAsync on an actual mobile device and the function does not hang forever and goes through normally. It only happens on the emulator in studio.

We’ve reproduced the problem and a fix is under development. Thanks for raising the issue and sorry for the delay.

5 Likes

I’m using this for a project and it doesn’t work in a live place or studio for me. Is there an ETA on the fix?

I expect the fix to be live in the next week or two.

3 Likes

The fix for this is now live. Timeouts should work now in Studio with emulated devices as well as on real devices.

4 Likes

It appears this bug has returned. This can be reproduced by running Player:RequestStreamAroundAsync(position) on any emulated device, doing so you will see that the function yields and never completes.

3 Likes

This is also occurring for me. I am using an emulated device with 1200 MB of memory in order to test lower end devices, and RequestStreamAroundAsync isn’t completing.

3 Likes

I am still facing a similar issue. When I use any emulated device on studio, the streaming radius reduces significantly and only renders chunks very close to my player’s character. :RequestStreamAroundAsync() also hangs indefinitely unless the chunk is loaded when my character physically approaches the area that needs to be loaded.

This does not occur when I use studio without an emulator or in-game.

Thanks for the report of the returned issue, we are investigating.

1 Like