Uploaded image for project: 'Minecraft (Bedrock codebase)'
  1. Minecraft (Bedrock codebase)
  2. MCPE-171186

Console devices lag out multiplayer users when saving files

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • None
    • 1.19.83 Hotfix, 1.20.0, 1.20.41 Hotfix, 1.20.51 Hotfix, 1.20.62 Hotfix, 1.20.72 Hotfix, 1.20.81 Hotfix, 1.21.0, 1.21.1 Hotfix, 1.21.2 Hotfix
    • None
    • Community Consensus
    • Multiple
    • 1151379

      There appears to be a regression in this version of Minecraft on the Switch. Before this version of the game was released, all of the below worked fine.  This is not a subtle bug and should not be hard to reproduce at all. 

      We have tested this on multiple save game files created over years.  All Nintendo Switches are on the latest available Minecraft version for that platform as wells the same OS version. 


      When a host Switch device autosaves a 50+ MB Minecraft world, even as few as one or two other players playing in local or online switch multiplayer, one or both non-local players will find themselves disconnecting very reliably. This happens with a variety of types of save game files.

      We've played literally hundreds of other games with this networking configuration, and have played Minecraft for dozens of hours via this networking configuration over many years".  This does appear to be a regression in the game  and not a network troubleshooting issue.

      Context: After providing details, I will speculate a bit upon what it appears might be fruitful avenues for investigation of the issue, but this is just an experienced software engineer who's worked on networked embedded networking device issues giving a total guess but definitely not a game programmer nor one informed about the details of Minecraft networking. I know a good deal about intentionally testing and stimulating network failures and have tried to characterize the bug though, but it's basically a 90% chance of happening any time the main console autosaves, so there was limited work to do on that front .

      I will try to call out what appear to be the localization string constant variable names that you use for the networking issues to hopefully assist in finding them. (I see these names published on international sites when new versions come out).

      Reproducing the bug:

      We've done a number of local saves to check different survival worlds: They all show the bug. We have found a downloadable adventure save file we'd played together awhile back that now exhibits the failure/bug (The Legendary Phoenix). That makes a 80MB save file by the time you're done.  We have not tested creative worlds.

      Additionally, looking at our "completed" save game file done under previous versions of Minecraft for the marketplace scenario "Minecraft: The Mountain" we get the same kind of error. It's a marketplace adventure about the Minecraft branded book of the same name from Max Brooks.  We did not start either of these adventures again with a new world, but I'm fairly certain The Mountain one is very available on the store.  

      I've not attached the switch data files: Those are exceedingly hard to extract correctly.

      That said, the seed of our main test world is -6715184763469579863. 

      Our spawn (no bonus chest) was about at -545, 64, 85

      The forest mansion door fairly near to -3428, 103, 280 would reliably cause a disconnection before we had defeated a vindicator in that Forest Mansion there. Now it does not do so. This might be an unrelated issue, but might not be? 

      Here is a easy view of the seed: https://www.chunkbase.com/apps/seed-map#-6715184763469579863

       

      The seed of the legendary phoneix scenario save game we are using (not that it matters?) is: -189012883

      The seed of the mountain scenario save game we are using (not that it matters?) is: 1572407133

       

      To reproduce with that Mountain adventure: 

      1. Download it off the marketplace on a Nintendo switch console (Switch A)
      2. Create a world of it
      3. Play with it on Switch A in multiplayer so other switch friends can join
      4. Switch B and Switch C connect in the "Online" tab to join the adventure (or really just one of them even) 
      5. Play for awhile, making sure the file gets up in the 50MB+ range (ours is in the 80MB+ range) when saving.
      6. Await an autosave on the main console (Switch A) while Switch B and C are being played as well. 
      7. Lag (blocks not updating, doors and gates not reliably reflecting true state, mobs not accepting damage then fast-forwarding) should be experienced where player actions occur on all three consoles, but especially B and C while the autosave icon is visible on Switch A. There may be some exacerbation about moving items in chests during this or not, it's hard to say. 
      8. Consoles B and or C will likely lag out with one of the below errors. 

       

      There are multiple different connection failures possible. From the perspective of the client consoles (Switch B and C): 

      disconnectionScreen.unexpectedPacket approximately 20% of the time. 

      "Disconnected due to an unexpected type of packet received which cannot be processed. This could be due to a version mismatch or corruption at the networking level"

      and 

      disconnect.disconnected aka approximately 75% of the time. 

      "Disconnected from Server"

      Very occasionally, you get a the following two error messages (together on one screen) when the saving happens during an attempt to join the Switch A player on to play along. 

      Sometimes, you get these two error screens when in interferes with loading in while joining the game: 

      disconnectionScreen.timeout : "Connection timed out."

      disconnectionScreen.cantConnect : "Unable to connect to world."

      Sometimes, but far more rarely , we have seen "Detected lost connection" (which I do not see in online lists of your localization string constants).

      [These are *not* the Nintendo switch "connection lost" black screens with the OK button, these are internal Minecraft screens. ]

       

      From the perspective of the main player:

      Switch A experiences partial joins sometimes  as "<playername> has left the game"

      Switch A experiences already fully joined players being lagged out as "<playername> has left the game"

       

      Details/What we have tried: 

      This happens when in the same household reliably, and happens whether using wifi or local connection mode.  Various other games play together over this wifi just fine in both modes, I am happy to verify with a specific title (But Minecraft dungeons is one, for instance, I bet you may have familiarity with). 

      We've definitely tried turning off all skins, and alternatively either waiting for the marketplace connection to fully establish on the main screen before connecting, or rushing right in. Neither help. 

      As with this version of Minecraft, you do not allow adjusting of the autosave rates, it's impossible to play in multiplayer once a save game file gets into this range. 

      We've done a number of local saves to check different survival worlds, and have found a downloadable adventure or two which exhibit this same behavior.  We have not tested creative worlds. 

       All three of us own a copy of the game and we're careful to use the correct users for each console to download it. 

      This is the bedrock version on the Nintendo Switch. We have done a number of networking and other troubleshooting steps and I'm fairly confident this is a software issue, not a save game or local corrupted file issue (due to completely reinstalling on all devices). This failure occurs when doing local networking or online networking. 

      We are all connected with high signal strength to the 5ghz wifi signal and have gigabit fiber as an ISP level networking connection. We do not have non-standard MTU configurations or anything like that. 

      We have even tried assigning static IPs to the 3 switch consoles and trying with non-static IPs. The same save bug persists.

      We have tried ensuring all three accounts are signed out of Microsoft accounts as well as ensuring Nintendo specific skins are disabled, as well as all texture packs, etc. None of these seem to effect the issue at all. 

      We assure you we are not doing something like going to the Switch home screen or any other number of perfectly understandable things for the switch to lag out. This is core play, or even trying to "stop doing anything it's saving".

      We have tried, on a copy of the world, to enable the experimental next version features. This does not appear to change the behavior in any way with respect to this bug. 

      We have tried this on the SD card and on the main switch both. We've redownloaded all three switches install files. We've ensured there is a ton of spare space on both. 

       

      What's possibly going wrong? 

      Likely this is useless speculation to you but this does look like a networking coordination failure (aka timeouts are too low for the client) or a multi-level failure (where laggy responses or dropped packets are triggering higher level "oh no our game state is corrupt" logic above the networking level instead of asking for more retries and chilling out).  Just offering it because this feels like what's going on possibly due to how slowly the game lags out (after a few seconds of saving), and due to the mix of different error messages. 

        1. You could have "overly strict" checking recently implemented in the "is this packet/message okay" in the client side connection, not the server side connection. I would strongly consider looking into any recently added/enabled "hack prevention" or "corruption prevention" code to see if something is now overly strict in a way which causes this extremely frequent bug. 

      2. You could have a responsiveness issues with respect to networking on the server side of this connection between switches/through Nintendo online when saving is going on. This likely means the clients are overly strict with determining a connection has failed with respect to how well you can deliver performance given a Switch console acting as a server.  The fix for this would likely be increasing timeouts as the world size gets bigger, or just increasing them on low performance platforms in general. If nothing else, adding this an an option  would very likely fix this issue right now and allow a more leisurely long term "how do we keep the games synced enough while the primary console saves". 

      3. Lastly, you truly could be sending out corrupt packets out of the server switch or part of a entity which is cancelled as save logic is exercised. For a complete hypothetical: it's fully conceivable if say a pig is killed, some complex behavior of the pig could get partially transmitted but the rest of the behavior would be "cancelled" from being transmitted because it's now dead. This could be correctly identified as "not all of what should have come as part of the behavior of the pig", but misidentified as "corrupt" when really it's just "ya, saving object often get partially transmitted because we just can't keep networking performance up while saving because the switch is slow at that".  Or really, it could be invalid to not send all that pig state, and the server is messing up there. 

       

       

      Thanks for looking at this report. Hopefully it's helpful, and glad to test further specific behaviors. 

       

        1. IMG_8381.jpg
          IMG_8381.jpg
          1.13 MB
        2. IMG_8383.jpg
          IMG_8383.jpg
          1.04 MB
        3. Minecraft_TheMountain.png
          Minecraft_TheMountain.png
          7.06 MB

            mjmcacctjira mjmcacctjira
            Votes:
            21 Vote for this issue
            Watchers:
            13 Start watching this issue

              Created:
              Updated:
              CHK: