FakeFishGames / Barotrauma

A 2D online multiplayer game taking place in a submarine travelling through the icy depths of Jupiter's moon Europa.
http://www.barotraumagame.com/
1.75k stars 405 forks source link

Unable to resume multiplayer campaign ("DoInitialCameraTransition has failed", "Owned submarine index was out of bounds") #11454

Open Artruis opened 1 year ago

Artruis commented 1 year ago

Disclaimers

What happened?

When trying to load into a multiplayer mission in multiplayer campaign, the loading takes too long and fails. this only happens when trying to load into a mission - I am able to load into the station.

error messages: MultiplayerCampaign.DoInitialCameraTransition has failed

Upon attempting to rejoin the server: Error in ClientRead. Owned submarine index was out of bounds. Index: 3, submarines: Error in ClientRead. Owned submarine index was out of bounds. Index: 6, submarines:

we are using custom submarines, in vanilla. save file attached in reproduction steps.

Reproduction steps

  1. Start a multiplayer mission using the save.
  2. ??? I cannot load into the game at this point. camp pain .zip

Bug prevalence

Happens regularly

Version

0.21.6.0

-

No response

Which operating system did you encounter this bug on?

Windows

Relevant error messages and crash reports

error message:
error while starting round (did not receive STARTGAMEFINALIZE message from the server)

error messages:
MultiplayerCampaign.DoInitialCameraTransition has failed

Upon attempting to rejoin the server:
Error in ClientRead. Owned submarine index was out of bounds. Index: 3, submarines:
Error in ClientRead. Owned submarine index was out of bounds. Index: 6, submarines:
Regalis11 commented 1 year ago

Thank you for the report! I think this is most likely caused by the same issue as https://github.com/regalis11/barotrauma/issues/10497 and https://github.com/Regalis11/Barotrauma/issues/11261. We've got a fix coming up for the issue in a future patch. Sorry for the inconvenience!

14536781456145306134508610346872457245 commented 1 year ago

11468

I believe this is different for a few reasons:

  1. My system is Linux and on windows i have no problem with the same servers | this is Linux's bug
  2. the other issue have differ Index number in the errors, mine what ever which server or which way i join it only shows the Index: 18

can someone just confirm and recheck this.

14536781456145306134508610346872457245 commented 1 year ago

Now linux is completely broken you can't even join multiplayer games on almost 90% of the servers If you are a real developer you should check and verify that linux even works [ArchLinux]

moxian commented 1 year ago

This issue is discussed on steam forums at https://steamcommunity.com/app/602960/discussions/1/3818529563381763285/

Anecdotally, getting a vpn close to the game host fixes the problem. Which indicates it's not just a ping issue, but.. something else.. MTU shenanigans (barotrauma sending out too big of a packet which fails to get through the network and reassembled properly?) is the only thing I can think of...

Regalis11 commented 1 year ago

@moxian This issue can occur if the server takes too long to send the up-to-date campaign save to the clients. Getting a VPN closer to the the host could plausibly speed up the file transfers enough to fix the issue.

But in any case, we've got a fix coming up for the issue in the near future (as soon as we get it through our review/QA pipeline and into a hotfix). Sorry for the inconvenience!

Ksarper commented 1 year ago

Please, fix it

Ksarper commented 1 year ago

Any progress?

Regalis11 commented 1 year ago

The fix has been reviewed and tested internally now, and it's coming in the next patch (before that, it'll be included in the unstable build, possibly even later today).

Ksarper commented 1 year ago

Coroutine "MultiplayerCampaign.DoInitialCameraTransition" has failed

No changes, still the same

Tinteex commented 1 year ago

same for me.

can you please fix it... its so annoying. our community rp attendance dropped because a third of people get kicked out per round...

Regalis11 commented 1 year ago

I'm sorry to hear the issue is still present. :/ If the latest patch didn't fix it, the problem must be somewhere else than what we suspected.

@Ksarper @Tinteex what's the exact error message in your case? "MultiplayerCampaign.DoInitialCameraTransition" has failed" essentially just means some error occurred during the "camera transition" (camera zooming in on your character) at the start of the round, but the actual error should also be listed in the debug console. Is it the same "Owned submarine index was out of bounds" error mentioned in the first post, or something else? If you have a save file where this occurs consistently, could you please send it here so we could give it a test?

I'm sorry for the inconvenience, this is a frustrating issue to us as well because we still haven't been able to find a way to get it to occur at our end. :/

Ksarper commented 1 year ago

I'm sorry to hear the issue is still present. :/ If the latest patch didn't fix it, the problem must be somewhere else than what we suspected.

@Ksarper @Tinteex what's the exact error message in your case? "MultiplayerCampaign.DoInitialCameraTransition" has failed" essentially just means some error occurred during the "camera transition" (camera zooming in on your character) at the start of the round, but the actual error should also be listed in the debug console. Is it the same "Owned submarine index was out of bounds" error mentioned in the first post, or something else? If you have a save file where this occurs consistently, could you please send it here so we could give it a test?

I'm sorry for the inconvenience, this is a frustrating issue to us as well because we still haven't been able to find a way to get it to occur at our end. :/

Thanks for the reply, here's my save: Save file.zip

Just to complete the picture... Somehow magically the problem disappears if I send my save to any other player. He just have to host the game and he can return me back save and then the problem disappears, but after about 2 rounds the error returns.

We were already sure that the problem was on my side, then the error started to appear again, no matter who hosts.

Console message:

Error while reading a message from server. 

Level equality check failed. The level generated at your end doesn't match the level generated by the server (client value PlaceLevelObjects: 2DAAB408, server value PlaceLevelObjects: 3048C87A, level value count: 17, seed: Anid419Thynia Linea462, sub: (II) Бомарис-5 (A8B1B6B), mirrored: False). Round init status: WaitingForStartGameFinalize. Round start save ID: 4, last save id: 4, pending save id: 4.
   at Barotrauma.Networking.GameClient.ReadStartGameFinalize(IReadMessage inc) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Networking\GameClient.cs:line 942
   at Barotrauma.Networking.GameClient.ReadDataMessage(IReadMessage inc) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Networking\GameClient.cs:line 750
   at Barotrauma.Networking.SteamP2POwnerPeer.HandleMessageForOwner(PeerPacketHeaders peerPacketHeaders, IReadMessage inc) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Networking\Primitives\Peers\SteamP2POwnerPeer.cs:line 368
   at Barotrauma.Networking.SteamP2POwnerPeer.Update(Single deltaTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Networking\Primitives\Peers\SteamP2POwnerPeer.cs:line 242
   at Barotrauma.Networking.GameClient.Update(Single deltaTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Networking\GameClient.cs:line 505

   Coroutine "MultiplayerCampaign.DoInitialCameraTransition" has failed

I apologize if this looks unreadable I am poorly familiar with the text formatting on the github.

steeb79 commented 1 year ago

I'm having this same issue i think. I'm on windows, but getting the same "Owned submarine index was out of bounds. " error.
when he joins my lobby he gets the error. We've played together for past 6 months (prior to the release). Each of us is able to play with other groups, so not sure who/where this issue is.

NilanthAnimosus commented 1 year ago

Tested against 1.0.13.2 (On master)

The first provided save loads fine initially. but when docking back to the outpost caused inumerous errors with linked entities and debug asserts.

Specifically Hull.cs shared 1142 and erroring on:

System.NullReferenceException
  HResult=0x80004003
  Message=Object reference not set to an instance of an object.
  Source=Barotrauma
  StackTrace:
   at Barotrauma.MapEntity.Remove() in C:\Github_Sources\Barotrauma\Barotrauma\BarotraumaShared\SharedSource\Map\MapEntity.cs:line 599

>   Barotrauma.dll!Barotrauma.MapEntity.Remove() Line 599   C#
    Barotrauma.dll!Barotrauma.Item.Remove() Line 3661   C#
    Barotrauma.dll!Barotrauma.Entity.RemoveAll() Line 216   C#
    Barotrauma.dll!Barotrauma.Submarine.Unload() Line 1826  C#
    Barotrauma.dll!Barotrauma.GameSession.StartRound(Barotrauma.LevelData levelData, bool mirrorLevel, Barotrauma.SubmarineInfo startOutpost, Barotrauma.SubmarineInfo endOutpost) Line 417 C#
    Barotrauma.dll!Barotrauma.Networking.GameClient.StartGame(Barotrauma.Networking.IReadMessage inc) Line 1534 C#
    Barotrauma.dll!Barotrauma.CoroutineManager.PerformCoroutineStep(Barotrauma.CoroutineHandle handle) Line 198 C#
    Barotrauma.dll!Barotrauma.CoroutineManager.IsDone(Barotrauma.CoroutineHandle handle) Line 231   C#
    Barotrauma.dll!Barotrauma.CoroutineManager.Update(bool paused, float deltaTime) Line 272    C#
    Barotrauma.dll!Barotrauma.GameMain.Update(Microsoft.Xna.Framework.GameTime gameTime) Line 930   C#
    MonoGame.Framework.Windows.NetStandard.dll!Microsoft.Xna.Framework.Game.DoUpdate(Microsoft.Xna.Framework.GameTime gameTime) Line 651    C#
    MonoGame.Framework.Windows.NetStandard.dll!Microsoft.Xna.Framework.Game.Tick() Line 500 C#
    MonoGame.Framework.Windows.NetStandard.dll!Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() Line 94    C#
    MonoGame.Framework.Windows.NetStandard.dll!Microsoft.Xna.Framework.Game.Run(Microsoft.Xna.Framework.GameRunBehavior runBehavior) Line 397   C#
    MonoGame.Framework.Windows.NetStandard.dll!Microsoft.Xna.Framework.Game.Run() Line 367  C#
    Barotrauma.dll!Barotrauma.Program.Main(string[] args) Line 58   C#

the second save seems fine (?) until reaching an outpost however I did not run it with the mods as its awkward/difficult to reconstruct all of those mods when there are so many (without say, a mod list to go with it for both the mod workshop entries and the order they are loaded), I did travel at least to 4 locations without issue in the current version. It could be related to the mods used however.

Errors did trigger once I got it to an outpost via togglecampaignteleport, it kicked me from the game due to debug asserts going off however it appeared to be the same issue.

steeb79 commented 1 year ago

still having the same issue, tried via vpn and issue persists.

was able to join from a different computer in the same household

mrharback commented 1 year ago

Having the same issue on Windows. Worked just fine before, now unable to join with friends. Just says the same "Error in ClientRead. Owned submarine index was out of bounds. Index: 4, submarines:" every time when joining.

mrharback commented 1 year ago

Having the same issue on Windows. Worked just fine before, now unable to join with friends. Just says the same "Error in ClientRead. Owned submarine index was out of bounds. Index: 4, submarines:" every time when joining.

Trying with friends right now. Same "Owned Submarine Index was out of bounds. Index:4, Submarines. All running v1.0.20.1, vanilla, fresh installs. Running a Zephyrus G15 laptop, AMD Ryzen 7 4800 HS Radeon, 16gb ram. Only seems to be on campaign, have joined sandboxes fine and don't receive any submarine issues. Does also seem to reset whatever character chosen into assistant regardless of profession picked

Have tried: Verifying files, unsubscribing from all mods on all ends, fresh installs, wiping steam Common files, disabling firewalls for Barotrauma. Attached is a screenshot of the issue. 20230620190452_1

steeb79 commented 1 year ago

@Regalis11

still having this issue after months, if I can help providing more info / reproducing the error please let me know image

Regalis11 commented 1 year ago

@steeb79

Sorry to hear that. :/ If you could provide us the save file this occurs in, it might give us some more clues for diagnosing this. Thanks and sorry for the inconvenience!

sakirma commented 1 year ago

@steeb79

Sorry to hear that. :/ If you could provide us the save file this occurs in, it might give us some more clues for diagnosing this. Thanks and sorry for the inconvenience!

Hey, no need to share a save I think? I have the same problem and it occurs already with starting a new save game. A fresh game without any mods. We tried even reinstalling the game but nope!

Me and my buddy can't play the game anymore, could you give us an update on what the status is?

sakirma commented 1 year ago

@steeb79 Sorry to hear that. :/ If you could provide us the save file this occurs in, it might give us some more clues for diagnosing this. Thanks and sorry for the inconvenience!

Hey, no need to share a save I think? I have the same problem and it occurs already with starting a new save game. A fresh game without any mods. We tried even reinstalling the game but nope!

Me and my buddy can't play the game anymore, could you give us an update on what the status is?

* We got the furthest by having my buddy shut down the game and rejoining as a spectator. This way he can join the game and just play it I guess?

* However, once I start my first mission. He doesn't even get into it anymore. restarting the game doesn't work at this point because he can't join as spectator.

@steeb79 hello Steeb. I might just have fixed my issue by disabling the VPN :D