Skip to content

A mod that will fix the stuck sync bug that had plagued users since the end of 2021.

License

Notifications You must be signed in to change notification settings

stiefeljackal/JworkzNeosFixFrickenSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neos Fix Fricken Sync (JworkzNeosFixFrickenSync)

A image of the video demonstrating a fixed sync loop

A NeosModLoader mod for Neos VR that fixes the "stuck sync" issue and is provided as a solution for #3915 on NeosPublic. Additionally, this mod contains an automatic retry sync feature that will retry a failed sync based on the specific failure state.

Installation

  1. Install NeosModLoader.
  2. Place JworkzNeosFixFrickenSync.dll into your nml_mods folder. This folder should be located in the same folder as Neos. For a default installation, the typical location is C:\Program Files (x86)\Steam\steamapps\common\NeosVR\nml_mods. You can create it if it's missing, or if you launch the game once with NeosModLoader installed it will create the folder for you.
  3. Start the game. If you want to verify that the mod is working, you can check your Neos logs.

Config Options

Config Option Default Description
enabled true Enables the mod.
retryCount 3 The number of times to retry failed sync actions.
retryDelay TimeSpan.Zero The delay between attempts to retry failed sync actions.
enableInProgressLogging false Allow the sync task to periodically log its progress. Stage updates are unaffected.

Allowing Your Mods to Subscribe to Sync Task Events

If you are a Mod developer and would like for your mod to to listen to sync task events, then your mod can subscribe to the following events:

Event Name Description
UploadTaskStart When the sync queue receives a new sync task to sync.
UploadTaskProgress When a sync task makes progress.
UploadTaskSuccess When a sync task is successful.
UploadTaskFailure when a sync task failed.

All event handlers are located in the RecordUploadTaskBasePatch class as static event handlers.

The True Explanation of Stuck Sync

Although the NeosVR wiki makes it sound like a "stuck sync" is a normal thing in Neos, this is not the case. The unfortunate truth behind the "Stuck Sync" issue is due to a bug in the sync loop where unhandled exceptions (aka errors) are not being handled within the sync loop, causing the loop to stop. The most common exception thrown is one where the upload task is being marked as complete twice when a sync failure occurs due to the Neos Cloud returning an HTTP error code. Because tasks cannot be marked complete more than once, an exception is thrown within the loop that causes the loop to stop.

Syncing errors should occur normally, but they should not be halting other sync tasks. If this bug was addressed, then the follow status would be shown:

Sync Error! Check log for details

NeosPublic Issues This Mod Resolves for "Stuck Sync"

Thank You

  • This mod is dedicated to the people of Creator Jam (CJ) 🍞. This mod was made out of the frustration and sadness experienced during CJ 211 (Traffic Jam) due to the "stuck sync" problem.
  • Jax for contributing to the retry sync feature and providing additional code clean-up while I was away on vacation during that time.
  • Rucio for testing this mod out on the Creator Jam headless server.
  • Lux and friend for assisting me in debugging the error log entry not showing in the logs.

About

A mod that will fix the stuck sync bug that had plagued users since the end of 2021.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages