Sunday, September 17, 2023

How Network Interface Metric Mess With Genshin Login System

TL;DR: If your Genshin Impact, for some reason, unable to save your login session across shutdowns or reboots, check the Interface Metric numbers across shutdowns/reboots in your network settings and make sure it stays same.

Remember when I have issues with Genshin Impact logging me out on system reboot or shutdown 2 years ago? Well now it happends again in the laptop I bought a year ago. This time however, I decided to diagnose it further.

Ok first of all, it's important to know what's changed before the issue occur. Since I know that it doesn't happen last week, it must be some sort of driver updates. From my previous experience, it has to do with network drivers. This means I can narrow it down to network driver updates. I remember Windows Update asked me to restart to install Wi-Fi driver. Gottem, it must be bad Wi-Fi drivers. Uninstalled it, restarted it, and now the game loads fine.

Network driver messing itself and watch me suffer as Genshin doesn't remember me again.
... except the next day, it doesn't. Could it be some nondeterminism with network order going on? Ok so I tried an experiment. Restarted the system, game loads fine. Okay good. Shutdown the laptop then start it again. Now the game doesn't remember me. Ok then shutdown again, nope. Restarted it, works. Shutdown it again bypassing "Fast Startup" (Protip: Press Shift while pressing "Shutdown), works. Shutdown with fast startup? nope.

From that experiment I can conclude that:

  1. Fresh start (from reboot or full shutdown) will make the game think I'm on current device, logging me in.
  2. Starting up from fast startup will make the game thinkthe network adapter has changed, logged me out.

Then, what else can we use to find out the exact issue? In Windows 11, there's "Hardware and connection properties". It lists all adapters excluding WSL/Hyper-V adapter but including Wi-Fi Direct adapters. Re-doing the experiment while watching this gives me some insights:

  1. On fresh start, the Ethernet is listed on topmost.
  2. On starting from fast startup, the Ethernet is listed on the bottom, not bottommost.

Well, okay that probably explains why. Genshin Impact "calculates" the key to load the session key based on the network order. So the next question is, how to change the order?

Googling "windows change network order" mentions changing "Interface Metric". There are 2 ways, with Powershell and with GUI. The powershell command is "Get-NetIPInterface", when run, shows as follows.

https://cdn.discordapp.com/attachments/922182394323292173/1152589110029070426/gambar.png
Top is the problematic output. Bottom is the correct output that Genshin recognize for my laptop.

Redoing the experiment again reveals that the "Ethernet" "InterfaceMetric" is set to 5 on fresh start (which it remembers my login). However on fast startup, it sets to 75. Just to confirm, it was set to 75. Entering the game, the game doesn't remember me. Ok set the "InterfaceMetric" of "Ethernet" IPv4 and IPv6 to 5 (see link above on how-to), and viola the game remembers me back.

This finally solves the mystery that I also had 2 years ago. It should be same issue where "InterfaceMetric" went non-deterministic across reboots/shutdowns. I was about to schedule my whole day to perform clean installation of the laptop but the mystery is solved once for all

Me looking her the first time be like: "Yup. I'm going to marry this girl!"
... until it logs me out again.