Reproduction Steps
This issue occurs seemingly at random. When using Player::RequestStreamAroundAsync, it will sometimes error with ‘No workspace or streaming enabled not active’ even though streaming is enabled. I cannot reproduce it in studio, I only picked up on this as any server errors are logged. The first instance of this occurring is September 27th, 2021 around 9:45 PM EST.
Expected Behavior
I expect the function to not error seemingly at random, or at least produce some meaningful error message.
Actual Behavior
The function errors at random.
Issue Area: Engine Issue Type: Other Impact: Moderate Frequency: Often Date First Experienced: 2021-09-27 21:09:00 (-04:00) Date Last Experienced: 2021-10-04 00:10:00 (-04:00)
Can you give us any more information on this? What place is this occurring on? Are you calling RequestStreamAroundAsync on the server or the client? Are you using a custom replication focus or anything unusually (that you know of)?
Sure, this is occurring at my game here. It occurs sometimes when calling RequestStreamAroundAsync from the server. I no longer set a custom ReplicationFocus since the blocking issue was fixed awhile back. This is the exact code that errors:
function RespawnManager:RespawnAtSpawnAsync(player: Player, spawnLocation: SpawnLocation) : ()
player.RespawnLocation = spawnLocation;
player:RequestStreamAroundAsync(spawnLocation.Position, 5); -- This line errors
player:LoadCharacter();
player.RespawnLocation = nil;
end
Just to update you, this hasn’t occurred in about 3 days now. I’m not sure if an update or FFlag solved it. I will mark this post as solved if it doesn’t occur for an entire week.
That error just happened in my game server.
I am using custom replication focus, but that should not have anything to do with the problem because I am requesting a stream around position (Vector3) on a server.
Sure. When player vehicle (tank) dies, after some delay, I teleport the player back to the lobby, without any vehicle. To achieve that, I do the following: on server, I request streamAroundAsync for the player around the lobby primary part, Then I let the player client machine know that he needs to go back to lobby, consequently, on client I set replication focus to the lobby main part.
This is the server code when player has to teleport back to lobby:
this is the relevant snippet from StreamSupport module implementation:
local STREAMING = workspace.StreamingEnabled
function module.streamRequestPos(player,pos)
if not STREAMING then
return
end
player:RequestStreamAroundAsync(pos)
end
function module.streamRequestPart(player,part)
module.streamRequestPos(player,part.Position)
end
EDIT:
I don’t know what happened on client as it happened to other player, I just saw the error on server log
After some digging, I found that I was doing the following on client first thing when game loaded:
local lobbyPart = workspace:WaitForChild("Lobby"):WaitForChild("MainPart")
that works fine with streaming, tank spawns, I set replication focus to tank primary part, and then when the tank dies, going back to lobby, what I was doing is: