Skip to content

Instantly share code, notes, and snippets.

@jrbergen
Last active June 18, 2026 15:13
Show Gist options
  • Select an option

  • Save jrbergen/0ce746676c4fbcc2becd6054d1bba2ed to your computer and use it in GitHub Desktop.

Select an option

Save jrbergen/0ce746676c4fbcc2becd6054d1bba2ed to your computer and use it in GitHub Desktop.
Instructions to resolve Company Of Heroes 2 Sync-Error for Proton (Tested on 5.0-10)

Instructions to resolve Company Of Heroes 2 Sync-Error for Proton (Tested on 5.0-10 and 6.3-2)

In support of this comment on Proton's CoH2 issues thread: Company of Heroes 2 (231430) #3875

Based on original solution by @Cytomax55 in the same thread.

Edit Feb 2023: this may also work for CoH3 (the paths are different of course). I haven't tested this for CoH 3 yet and hope either Proton / Relic will make this fix unnecessary. See also @sfxworks's comment.

Instructions for automatic fix with a script by TechT10n

  1. You may want to disable cloud-sync for CoH2 on steam as it can cause issues. Thanks @Commando-Brando
  2. Open your terminal, and run*:
curl https://gist.githubusercontent.com/TechT10n/79b853003f2e9841a18e8b6decd0fd3e/raw/coh2_multiplayer_fix.sh | bash

If this doesn't work (because for example your Steam path is different from the default), you may have to copy the script from that link and alter the part where the path is specified, and then run it locally (see also this comment).

If that still doesn't work for some reason, you can follow the manual steps below:

*Note that this runs a remote shell script directly; it is always a good idea to check the script's contents before running it (just open the URL to the gist in a browser) to make sure it doesn't do anything weird. I don't have any malicious intent and I have no reason to think TechT10n has either, but it is good practice regardless.

Fallback instructions to perform the workaround manually

Note: some users have reported that reinstalling and clearing the Steam cache is unnecessary; you can try to skip step 1 to 4 and start at step 5, but your mileage may vary.

Additionally, this fix does not always seem to work; I have no clue as to why it does work for some and doesn't for others, or why it seems to stop working sometimes even with the same system/config. It should be deterministic 🤷‍♂️.

  1. You may want to disable cloud-sync for CoH2 on steam as it can cause issues. Thanks @Commando-Brando

  2. Uninstall/delete CoH2:

    • (1a) Uninstall CoH 2 on steam.
    • (1b) Delete remaining files here: rm -rf "~/.steam/steam/steamapps/common/Company of Heroes 2"
    • (1c) Delete compatibility data for CoH2: rm -rf ~/.steam/steam/steamapps/compatdata/231430/
  3. Clear download cache in Steam -> settings -> "downloads" tab (requires Steam login afterwards; ⚠️make sure you know your Steam credentials beforehand!⚠️.

  4. Reinstall CoH2 on Steam.

  5. Launch CoH 2 -> at this stage game would still give 'Sync Error' in multiplayer games either immediately after loading the map or when first enemy is encountered with proton 5.0-10, 5.13-6, 6.3-6, experimental, 6.14-GE-2.

  6. Download vc_redist.x64.exe at ✅https://www.microsoft.com/en-us/download/details.aspx?id=48145 from the microsoft website. Note that another link, namely ❌https://aka.ms/vs/16/release/vc_redist.x64.exe did NOT WORK, as it was missing the required DLL at the time this report was submitted.

  7. make separate directory to extract vc_redist.x64.exe to. E.g. mkdir /tmp/vcredist && cp /PATH/TO/DOWNLOAD/vc_redist.x64.exe /tmp/vcredist/vc_redist.x64.exe.

  8. cd to the download directory and extract vc_redist.x64.exe using cabextract to the directory you chose as such: cabextract vc_redist.x64.exe -d /tmp/vcredist. If this did not result in ucrtbase.dll being extracted, use cabextract again to extract a10 specifically.

  9. Copy or move ONLY ucrtbase.dll to ~/.steam/steam/steamapps/compatdata/231430/pfx/drive_c/windows/system32/ (cp /tmp/vcredist/ucrtbase.dll ~/.steam/steam/steamapps/compatdata/231430/pfx/drive_c/windows/system32/) . May require sudo privileges.

  10. Launch Company of Heroes 2 in Steam using Proton 5.0-10. I have only played 1 match, but given that the sync-error would occur immediately or on the first enemy sighting before, I suspect this resolved the sync-error issue. Not yet tested on 6.3-2.

Another note: tested on Steam native client, Manjaro w/ kernel 5.10.59

@xniksysx

xniksysx commented Dec 24, 2024

Copy link
Copy Markdown

@shIxx01

shIxx01 commented Jan 9, 2025

Copy link
Copy Markdown

I still get desync error:

  • Manjaro (Arch)
  • default steam path
  • Proton 9,0,3

The script shows sucessfull at the end. still desync
output:
bash: Zeile 31: cabextract: Kommando nicht gefunden. bash: Zeile 32: cabextract: Kommando nicht gefunden. cp: der Aufruf von stat für 'tmp/ucrtbase.dll' ist nicht möglich: Datei oder Verzeichnis nicht gefunden cp: der Aufruf von stat für 'tmp/ucrtbase.dll' ist nicht möglich: Datei oder Verzeichnis nicht gefunden Success: ucrtbase.dll was copied to /home/tom/.steam/steam/steamapps/compatdata/231430/pfx/drive_c/windows/system32\n
than I copied the dll from one poste above in /.steam/steam/steamapps/compatdata/231430/pfx/drive_c/windows/system32/
still desync

@shIxx01

shIxx01 commented Jan 9, 2025

Copy link
Copy Markdown

OK, Yeah, I got it work. I noticed this line "cabextract: command not found"
after run this sudo pacman -Syu && sudo pacman -S cabextract wget from post above, everything works like a charm.
Thank you all for your effort

@YougotTRUMPD

Copy link
Copy Markdown

FIXED running Debian 12 with Nvidia
I tried all of the above with no luck so I searched for a way to force the ucrtbase.dll to load.
I added "WINEDLLOVERRIDES="dinput8=n,b" %command%" to launch options and followed the guide here: https://cookieplmonster.github.io/setup-instructions/

@APB-LDN

APB-LDN commented Aug 7, 2025

Copy link
Copy Markdown

Hello everyone!
I've been trying to get CoH3 MP to work through CrossOver Preview, but I'm running into the same desynch issue described here.
Would any of these fixes be applicable to CrossOver? If so, how should I go about it?
Many thanks!

@TechT10n

Copy link
Copy Markdown

@APB-LDN - I don't own CoH3, only CoH2. But assuming that these games are both affected by the same issue, and as long as their directory structure is the same, you might be able to modify the STEAM_PATH line from my script to point to the APP ID for CoH3 instead of CoH2. And try running it.

# change this...
STEAM_PATH=${STEAM_ROOT}/steamapps/compatdata/231430/pfx/drive_c/windows/system32

# to this...
STEAM_PATH=${STEAM_ROOT}/steamapps/compatdata/1677280/pfx/drive_c/windows/system32

This is purely a shot in the dark, but it might be worth a try.

@xniksysx

xniksysx commented Nov 27, 2025

Copy link
Copy Markdown

The simplest fix for the multiplayer desync issue in CoH2 on Linux (via Proton) is to extract ucrtbase.dll from the VC Runtime 2015 package and place it in the game’s root directory.

To extract the DLL, you'll need a tool like cabextract, or you can download the already-extracted DLL from my link posted above.

With current Proton versions (Experimetal), you no longer need to use WINEDLLOVERRIDES - having the DLL in the game folder is enough.

@Zir-Zoinkus

Copy link
Copy Markdown

The simplest fix for the multiplayer desync issue in CoH2 on Linux (via Proton) is to extract ucrtbase.dll from the VC Runtime 2015 package and place it in the game’s root directory.

To extract the DLL, you'll need a tool like cabextract, or you can download the already-extracted DLL from my link posted above.

With current Proton versions (Experimetal), you no longer need to use WINEDLLOVERRIDES - having the DLL in the game folder is enough.

You can even download it from PCgamingwiki here https://community.pcgamingwiki.com/files/file/2081-ucrtbasedll-extracted-from-microsoft-visual-c-2015-redistributable-update-3-rc/

@flu67

flu67 commented Jan 4, 2026

Copy link
Copy Markdown

The simplest fix for the multiplayer desync issue in CoH2 on Linux (via Proton) is to extract ucrtbase.dll from the VC Runtime 2015 package and place it in the game’s root directory.

To extract the DLL, you'll need a tool like cabextract, or you can download the already-extracted DLL from my link posted above.

With current Proton versions (Experimetal), you no longer need to use WINEDLLOVERRIDES - having the DLL in the game folder is enough.

In which exact game folder should the DLL be located?

@Zir-Zoinkus

Copy link
Copy Markdown

The simplest fix for the multiplayer desync issue in CoH2 on Linux (via Proton) is to extract ucrtbase.dll from the VC Runtime 2015 package and place it in the game’s root directory.
To extract the DLL, you'll need a tool like cabextract, or you can download the already-extracted DLL from my link posted above.
With current Proton versions (Experimetal), you no longer need to use WINEDLLOVERRIDES - having the DLL in the game folder is enough.

In which exact game folder should the DLL be located?

The root which is just the folder that says 'Company of Heroes 2' in steamapps\common\Company of Heroes 2

@gkotzee2019-spec

Copy link
Copy Markdown

Setting up desktop Intel Core i7-3770K paired to a Nvidia GTX 660 with 8gb RAM for online COH2 multiplayer

 1  Introduction:
     1.1  This guide lists the steps necessary to:
         1.1.1  play COH2 in online automatch without the steam and coh2 startup crashes and sync errors during play caused by the outdated hardware, and
         1.1.2  optimise the system's graphics display
     1.2  Reference to "Terminal" is the Ubuntu Terminal listed on the app menu that uses text commands. Relevant Terminal commands are shown in italics.
     1.3  Any errors encountered ought to be resolved by pasting the error message into Google AI and acting on the suggested steps, for example if the Software Updater does not want to update itself because it's running at the time, Google AI ought to suggest that you kill and update the app in Terminal. These AI conversations vary from time to time, so check by rephrasing the question (or posting from another terminal) to verify.
     1.4   The approximate time taken for each step is shown in (brackets).
     1.5  The footnotes show the most useful AI advice verbatim.
        
   
 2  Install and set up Ubuntu 22.04 (30 min)
     2.1  Download Ubuntu 22.04.5 Desktop Image (Jammy Jellyfish) from https://releases.ubuntu.com/jammy/ 
     2.2  Use the "Startup Disk Creator" app on the Ubuntu app menu to flash the downloaded "ubuntu-22.04.5-desktop-amd64.iso" file to a flash drive, using Balena Etcher is an alternative to do this
     2.3  Insert the flash drive into the desktop's usb port and start
     2.4  Press F12 on startup
     2.5  Boot from the flashdrive
     2.6  Select "delete the desktop hard drive and install Ubuntu" and then "minimal installation" and follow the GUI installation steps
     2.7  Register and get token for Ubuntu Pro
     2.8  Once the Ubuntu installation is complete you will be prompted to restart and remove the flash drive
     2.9  If prompted install all available Ubuntu updates, or use Terminal to get them:
       sudo apt update
       sudo apt upgrade
       sudo apt autoremove
     2.10  You can check your Ubuntu Pro status in Terminal:
   pro status
       and register if not done in Terminal:
   sudo pro attach "your-token"
     2.11  Set your headphones as your default audio output in Terminal:
   alsamixer
     2.12  Use F6 to select the Intel board and arrow keys to navigate to output and change line out to "headphones", test in Settings on GUI
   
 3  Install Nvidia GTX660 driver version 470 (20 min)
     3.1  Use the Additional Drivers app to have the system autodetect the GTX660, select the 470 version driver for installation and apply
     3.2  Check in Terminal that the driver is installed:
       nvidia-smi
     3.3  Install Nvidia Settings app in Terminal:
       sudo apt update
       sudo apt install nvidia-settings
     3.4  Run app and change power settings to max in GUI
       nvidia-settings
       
 4  Installing Steam (15 min)
     4.1  Download the Steam Installer from https://store.steampowered.com/about/, click on the "install steam" icon, it ought to already be configured for Linux
     4.2  Use the Files app to cut and paste the downloaded steam_latest.deb file from your Downloads folder to your Public folder
     4.3  You must use the old .deb installation method (and not new default Ubuntu Snap) as COH2 won't run otherwise - AI query "Install Steam via the Official DEB Package Ubuntu 20.04"
     4.4  In Terminal, navigate to the Public folder
   cd ~
   cd Public
     4.5  Install steam in Terminal
   sudo apt install ./steam_latest.deb
     4.6  Wait for the installer GUI to appear and follow the prompts
     4.7  You can uninstall steam in Terminal
   sudo apt remove steam 
   sudo apt purge steam
   sudo apt autoremove
     4.8  Run steam to allow it to update. Change settings to run in big picture mode and disable all cloud services, exit once done
   
 5  Download and install ProtonUP-Qt and GE-Proton 6.2[1](https://gist.github.com/jrbergen/0ce746676c4fbcc2becd6054d1bba2ed#sdfootnote1sym)-GE-2 (10 min)1
     5.1  Download the ProtonUp-Qt-2.15.0-x86_64.AppImage file from https://davidotek.github.io/protonup-qt/[2](https://gist.github.com/jrbergen/0ce746676c4fbcc2becd6054d1bba2ed#sdfootnote2sym)
     5.2  Use the Files app to cut and paste the downloaded ProtonUp-Qt-2.15.0-x86_64.AppImage file from your Downloads folder to your Public folder
     5.3  In Terminal, navigate to the Public folder
   cd ~
   cd Public
     5.4  Install the Fuse dependency
   sudo apt update
   sudo apt install libfuse2
     5.5  make the file executable
   chmod +x ProtonUp-Qt-2.15.0-x86_64.AppImage
     5.6  run the file
   ./ProtonUp-Qt-2.15.0-x86_64.AppImage
     5.7  in the ProtonUp-Qt GUI select the Steam destination folder and in the dropdown menu GE-Proton 6.21-GE-2 (you will have to scroll down past many newer versions)
     5.8  Click on "add version" and GE-Proton 6.21-GE-2 will download directly to the correct Steam folder
   
 6  Changing steam settings (5 min)
     6.1  Run steam
     6.2  In main menu navigate to "compatibility" and select GE-Proton 6.21-GE-2[3](https://gist.github.com/jrbergen/0ce746676c4fbcc2becd6054d1bba2ed#sdfootnote3sym)
     6.3  In the COH2 settings menu navigate to "compatibility" and select GE-Proton 6.21-GE-2
     6.4  Paste under COH2 settings "general" the following launch command:
   PROTON_USE_WINED3D=1 PROTON_FORCE_LARGE_ADDRESS_AWARE=1 %command% -nomovies -minvidmem
   
 7  Increase Your Swap File to 8GB (5 min)[4](https://gist.github.com/jrbergen/0ce746676c4fbcc2becd6054d1bba2ed#sdfootnote4sym)
     7.1  This process varies enormously in AI so double double check
     7.2  In Terminal:
   sudo swapoff -a
   sudo rm /swapfile
   sudo dd if=/dev/zero of=/swapfile bs=1G count=8
   sudo chmod 600 /swapfile
   sudo mkswap /swapfile
   sudo swapon /swapfile
     7.3  then make change permanent
   echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
     7.4  to check if all is well
   grep swap /etc/fstab
     7.5  the following should be displayed:
   /swapfile none swap sw 0 0
   
 8  Install COH2 (60 min)
     8.1  Run COH2 change all graphics setting to minimum and disable all non-essential processes
       
   Note: The game runs now but sync errors occur
   
 9  Install Flatpak: ([5](https://gist.github.com/jrbergen/0ce746676c4fbcc2becd6054d1bba2ed#sdfootnote5sym)min)5
     9.1  In Terminal:
       sudo apt install flatpak
       flatpak remote-add --if not exists flathub https://flathub.org/repo/flathub.flatpakrepo
     9.2  restart the system
       
 10  Install Protontricks give access to all files and run: (30 min)
     10.1  In terminal
       flatpak install flathub com.github.Matoking.protontricks
       sudo flatpak override com.github.Matoking.protontricks --filesystem=host
     10.2  Clear the steam directory in Terminal:
   rm -rf ~/.steam/steam/steamapps/compatdata/231430/
     10.3  Open Steam and run COH2, exit, to create new path
     10.4  Run Protontricks from App menu. In GUI select COH2, "OK" for problem with 8.x upgrade, select default wine prefix, install windows dll component: vcrun2015
     10.5  Run COH2 change all graphics setting to minimum and disable all non-essential processes
       
       Note: Up to here COH2 works online but you get sync error after 7 minutes
   
 11  Download dll file from Microsoft direct and copy to steam folder (10 min)
     11.1  Download vc_redist.x64.exe from https://www.microsoft.com/en-za/download/details.aspx?id=48145
     11.2  Install cabextract
   sudo apt update && sudo apt install cabextract -y
     11.3  extract vc_redist.x64.exe and copy to steam folder
   mkdir -p /tmp/vcredist
   cd Downloads
   cabextract vc_redist.x64.exe -d /tmp/vcredist
   cd /tmp/vcredist
   cabextract a10 -d /tmp/vcredist
   cp /tmp/vcredist/ucrtbase.dll ~/.steam/steam/steamapps/common/"Company of Heroes 2"/
   
   Note: After this you were able to play online for more than [1](https://gist.github.com/jrbergen/0ce746676c4fbcc2becd6054d1bba2ed#sdfootnote1anc)5 minutes, it seems to make the protontricks process (par  9 and 10 ) redundant
   
   This seems like the real fix

 12  Troubleshooting:
     12.1  In steam under COH2 properties verify integrity of game files
     1[2](https://gist.github.com/jrbergen/0ce746676c4fbcc2becd6054d1bba2ed#sdfootnote2anc).2  Check your system logs (dmesg) to pinpoint any lingering bottlenecks, you haven't tried this
     12.3  Downgrade to Proton 5.0-10, you haven't tried this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment