Starting NVDA will always restart when there is a problem with the JSON cache file in the add-on store.
Steps to reproduce:
It is possible to manually change the JSON cache file of the add-on store, breaking its structure.
Actual behavior:
After rebooting, it will keep rebooting for a while.
You must delete %appdata%\nvda\addonStore to recover!
Expected behavior:
It won't keep rebooting.
NVDA logs, crash dumps and other attachments:
After this problem occurs during operation, the exception is ignored and NVDA continues to operate normally.
ERROR - logHandler._threadExceptHook (02:23:37.237) - initialiseAvailableAddons (15536):
Exception in thread initialiseAvailableAddons:
Traceback (most recent call last):
File "requests\models.pyc", line 971, in json
File "json\__init__.pyc", line 346, in loads
File "json\decoder.pyc", line 337, in decode
File "json\decoder.pyc", line 355, in raw_decode
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "threading.pyc", line 1045, in _bootstrap_inner
File "threading.pyc", line 982, in run
File "addonStore\dataManager.pyc", line 208, in getLatestCompatibleAddons
File "addonStore\dataManager.pyc", line 142, in _getCacheHash
File "requests\models.pyc", line 975, in json
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
The log after rebooting all the time, omitting the configuration file contents section. It's not there later.
INFO - core.main (02:46:40.653) - MainThread (21408):
Developer Scratchpad mode enabled
INFO - core.main (02:46:41.154) - MainThread (21408):
Windows version: Windows 11 22H2 (10.0.22621) workstation AMD64
INFO - core.main (02:46:41.154) - MainThread (21408):
Using Python version 3.11.6 (tags/v3.11.6:8b6ee5b, Oct 2 2023, 14:40:55) [MSC v.1935 32 bit (Intel)]
INFO - core.main (02:46:41.154) - MainThread (21408):
Using comtypes version 1.2.0
INFO - core.main (02:46:41.154) - MainThread (21408):
Using configobj version 5.1.0 with validate version 1.0.1
DEBUG - core.main (02:46:41.154) - MainThread (21408):
Initializing add-ons system
DEBUG - addonStore.dataManager.initialize (02:46:41.164) - MainThread (21408):
initializing addonStore data manager
CRITICAL - __main__ (02:46:41.166) - MainThread (21408):
core failure
Traceback (most recent call last):
File "nvda.pyw", line 415, in <module>
File "core.pyc", line 666, in main
File "addonStore\dataManager.pyc", line 64, in initialize
File "addonStore\dataManager.pyc", line 96, in __init__
File "addonStore\dataManager.pyc", line 195, in _getCachedAddonData
File "addonStore\models\addon.pyc", line 367, in _createStoreCollectionFromJson
File "json\__init__.pyc", line 346, in loads
File "json\decoder.pyc", line 337, in decode
File "json\decoder.pyc", line 355, in raw_decode
json.decoder.JSONDecodeError: Expecting value: line 1 column 1619 (char 1618)
DEBUGWARNING - RPC process 9876 (explorer.exe) (02:46:41.791) - Dummy-1 (33556):
Thread 7148, build\x86_64\remote\ia2Support.cpp, IA2Support_inProcess_terminate, 215:
WaitForMultipleObjects returned -1
DEBUGWARNING - RPC process 9876 (explorer.exe) (02:46:41.797) - Dummy-1 (33556):
Thread 7148, build\x86_64\remote\ia2Support.cpp, IA2Support_inProcess_terminate, 215:
WaitForMultipleObjects returned -1
DEBUGWARNING - RPC process 19168 (explorer.exe) (02:46:43.027) - Dummy-1 (33556):
Thread 20968, build\x86_64\remote\ia2Support.cpp, IA2Support_inProcess_terminate, 215:
WaitForMultipleObjects returned -1
ERROR - Exception ignored in atexit callback: <function terminate at 0x04E607A8> (02:46:43.194) - MainThread (21408):
Traceback (most recent call last):
File "audio\soundSplit.pyc", line 96, in terminate
File "audio\soundSplit.pyc", line 160, in setSoundSplitState
File "audio\soundSplit.pyc", line 115, in applyToAllAudioSessions
AttributeError: 'NoneType' object has no attribute 'RegisterSessionNotification'
System configuration
NVDA installed/portable/running from source:
all
NVDA version:
2023.2 and higher (version with add-on store)
Windows version:
all
Name and version of other software in use when reproducing the issue:
Other information about your system:
Other questions
Does the issue still occur after restarting your computer?
yes
Have you tried any other versions of NVDA? If so, please report their behaviors.
no
If NVDA add-ons are disabled, is your problem still occurring?
no
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
no
In addition to fixing the problem directly, a new directory of temporary configuration files should be used to start NVDA after multiple reboots of NVDA to prevent a similar situation from causing constant reboots.
Starting NVDA will always restart when there is a problem with the JSON cache file in the add-on store.
Steps to reproduce:
It is possible to manually change the JSON cache file of the add-on store, breaking its structure.
Actual behavior:
After rebooting, it will keep rebooting for a while.
You must delete %appdata%\nvda\addonStore to recover!
Expected behavior:
It won't keep rebooting.
NVDA logs, crash dumps and other attachments:
After this problem occurs during operation, the exception is ignored and NVDA continues to operate normally.
The log after rebooting all the time, omitting the configuration file contents section. It's not there later.
System configuration
NVDA installed/portable/running from source:
all
NVDA version:
2023.2 and higher (version with add-on store)
Windows version:
all
Name and version of other software in use when reproducing the issue:
Other information about your system:
Other questions
Does the issue still occur after restarting your computer?
yes
Have you tried any other versions of NVDA? If so, please report their behaviors.
no
If NVDA add-ons are disabled, is your problem still occurring?
no
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
no
In addition to fixing the problem directly, a new directory of temporary configuration files should be used to start NVDA after multiple reboots of NVDA to prevent a similar situation from causing constant reboots.