When joining a multi user session, the editor will check for any in memory changes, if so, it warns the user that they have changes and offers to discard them.
Previously, in Unreal 5.3, you would click discard, and it would do exactly that, discard any changes, and you’d join the session cleanly.
Now however, as of 5.4, Discarding isn’t working, if there is in memory changes and you click discard, when you join the session your editor will trigger any dirty levels to save. This causes all connected instances to re-load the level - increasing the time it takes to launch an nDisplay cluster as it first loads, and then reloads all levels as operators join.
A workaround: if you see the discard message, don’t discard, open a new empty level, when it asks you to save, click don’t save and it will open the empty level. Now your changes have been actually discarded and you’ll join the session cleanly. Then go find the level you were loading into and open it.
But, the behavior in 5.3 is what we would expect, discard changes, you join the session, and nothing is resaved.
Steps to Reproduce
Open an editor session, make a change in the outliner so that a level is marked dirty. Now try and join a multi user session. The message will popup that you have in memory changes.
Press Discard, you will join the session, but you’re changes won’t be discarded, all the levels you have dirtied will be saved.
So I am able to reproduce the bug in 5.5, but not in 5.6. So it appears it may have been fixed already
In this video, I launch into a level with a nDisplay and a lightcard with the ICVFX window open, causing the package to be dirtied, and when I discard changes, the level the nDisplay is in is saved instead of being discarded
In this video, I repeat the exact same steps with the exact same project but with 5.6, and it doesn’t happen
While this is good news when we upgrade, we are currently testing and evaluating 5.6 while being in production with 5.5 at our Virtual Production studio, and we are encountering some concerning roadblocks with it that we may raise additional pro support questions in the future. As of now, we will be in 5.5 for several more months.
Mattew, I have a few observations to point out the differences in our 5.5 videos:
You are using Switchboard from 5.6 for the 5.5 engine
You have to create a session instead of the editor automatically doing so, here is another video on my end - https://youtu.be/r3ljMSbwkZ8 where MU_Session4 was created and joined automatically
I assume that since you have to create a session manually via the editor buttons, it probably takes another codepath, maybe some other changes in that session affecting that behavior.
Would you mind trying out again with SB 5.5 and a fresh new MU session set in it?
In this video, I launch from Switchboard 5.5, Opening up Unreal 5.5, A new multiuser server is created, and a new session is created by the editor, same results
In this video, I rename the multi user session to be sure I’ve got a clean session before launch, same results
This workflow of having switchboard launch the multi-user server and telling all launched instances to autoconnect to a session that you’ve named is standard operating procedures on an ICVFX stage.
Whatever instance successfully connects first will create the session - in this case, there is only the one editor launching.
But, in this video, I don’t have Switchboard create the server or auto-connect to session at all, I open up the editor and create it manually in the multi-user browser just to rule it out, same results
Matthew, thank you for the elaborate tests on your end.
Could you please try the attached project I have on your end, too? In all the videos you shared, you had to create a session in the editor, and I could not repro this behavior.
In this video I am loading the MyICVFXProject you provided, Swtichboard 5.5, Unreal 5.5 on our stage side operator machine.
The multi user server has already been launched, but no session is created yet
When I launch the editor, the ICVFX window is open, so the bug is triggered where it dirties the stage level, this prevents the session from being created and the discard changes window appears
you discard changes… the session is created, but upon joining the session that dirtied package is saved.
in this video, I perform the same test, but on my laptop with Vanilla unreal 5.5, repoing the bug on a different machine
The multi user server is already launched, and I even created a session before hand
I launch the editor - without auto-joining the session
The editor launches, the ICVFX window dirties the stage level
I go to the Multi-user Browser window, and manually join the existing empty session. The discard window appears, I discard changes… join the session, but the dirtied level is saved.
However, repeating the 2nd test using switchboard and unreal 5.6, the bug appears to have been fixed already, it is not triggering.
So I just tested it, and confirmed that this issue appears to be already fixed in 5.6 because I’m not able to reproduce it, even though I can easily reproduce it in 5.5 and 5.4
Therefore, I don’t think there is anything further to investigate.