Syncing data between multiple devices may cause the program to fail to start properly
Abstract
After synchronizing a directory containing an application's configuration profile from one computer to another via a USB flash drive using FreeFileSync, launching the application on the second device results in an issue where the interface is mostly blank, with only a few unresponsive buttons visible. This problem may be related to the synchronization of the prefs.js file.
Background and Environment
- Project Version: I am using a personally maintained forked version to keep it updated, not the official version.
- Fork Project Address: Huiaei/phyrox-portable
- Deployment Environment: The application is deployed on a USB flash drive for use between two PCs (home and office).
- Synchronization Method:
- Office Computer: The application is run directly from the USB flash drive.
- Home Computer: FreeFileSync is used to perform a two-way synchronization of the USB flash drive files with the local disk, and the application is run locally (it has been set as the default application via the registry).
Steps to Reproduce the Issue
- Use and exit the application normally on the home computer.
- Use FreeFileSync to synchronize the application directory (including the
profilefolder) from the home computer to the USB flash drive. - Connect the USB flash drive to the office computer.
- Launch the application directly from the USB flash drive.
Expected Behavior
The application should start normally, with all interface elements, configurations, and extensions fully loaded.
Actual Behavior
The application exhibits severe display issues upon launch:
- The main interface is mostly blank.
- Only a very small number of buttons are displayed, and all of them are unresponsive.
- The application is unusable and can only be force-closed via the taskbar.
Temporary Workaround
The following steps can temporarily restore the application's functionality, but with side effects:
- Navigate to the
profilefolder and rename theprefs.jsfile (e.g., toprefs.js.bak). - Restart the application. It will generate a new
prefs.jsfile, and the interface will return to normal. - Close the application and delete the newly generated
prefs.jsfile. - Rename the
prefs.js.bakfile back toprefs.js. - Launch the application again. It should now load correctly.
Side Effects
- After restoring the application using the method above, some extensions fail to load successfully.
- It is necessary to manually go into the extension settings page, disable the unloaded extensions, and then re-enable them to restore their functionality.
Additional Notes
First, my sincere apologies. I understand that I am not using the official project version and have not tested this in a clean environment, so this issue may be specific to my personal setup.
The reason I am bringing this up here is that I cannot resolve this issue on my own and am hoping to get some possible ideas or assistance. If this issue is not appropriate for discussion here or if it has caused any inconvenience, please disregard it. Thank you very much for your understanding and time.
The above text was optimized and translated by Gemini 2.5 Pro.
I tried synchronizing only the 'data' folder within the directory in FreeFileSync, and it seems the issue no longer occurs.