Glyssen 6.0.6 installer has a broken localization file

Fresh install of Glyssen 6.0.6 on two Windows 11 machines.

image

The program does not try to load after the error.

One has ESET antivirus, which had no complaints.
One has Norton 360, which required unblocking but still thew the same error.
Both machines have Paratext 9.3.

I tried to roll back to 6.0.5, same problem. Giving up for now.

~Matthew Lee

Looking into it right away

It runs on Windows 10. (I haven’t upgraded to W11 yet, and I don’t know whether its ever been tried on that version before. However, whenever I try to switch UI languages in the installed version, the program shuts down instantly with no error message. When I start it back up, it has made the switch to the new language. I have a vague hunch as to what the problem is, but I’m not at all sure this problem is actually the same one you’re seeing there.

Both computers were using English Windows, if that matters. One of the computers is my own. If you can tell me where to get a log file, I’ll get it.

I have found and fixed a couple problems that might be related, but since I’m not getting that message, maybe not. You can find the log file at:
C:\Users\accountname\AppData\Local\Temp\FCBH-SIL\Glyssen\Log.txt

This doesn’t look helpful. I have a crowded Path variable because of some programming.
I see some geolocation data. Both Computers are in Cameroon. Also, HearThis worked on both machines.

1:19:50 PM	App Launched with ["C:\Program Files\Glyssen\Glyssen.exe" ]
1:19:50 PM	Glyssen.exe Information: 0 : 
1:19:50 PM	*** ICUDllLocator.Initialize: PATH is:
1:19:50 PM	Glyssen.exe Information: 0 : 
1:19:50 PM	C:\Program Files\Common Files\SIL;C:\Program Files\Zulu\zulu-11\bin\;C:\Program Files\SIL\FieldWorks 9\;C:\Program Files\Zulu\zulu-8\bin\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\TortoiseHg\;C:\Program Files\Calibre2\;C:\Program Files (x86)\Keyman\Keyman Developer\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Meld\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Apps\Python39\Scripts\;C:\Apps\Python39\;C:\Users\thoua\AppData\Local\Microsoft\WindowsApps;C:\Users\thoua\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\thoua\AppData\Local\GitHubDesktop\bin;C:\Users\thoua\AppData\Roaming\npm;C:\Users\thoua\AppData\Local\gitkraken\bin;C:\Program Files\SIL\FieldWorks 9\;C:\Program Files\SIL\FieldWorks 9\lib\x64
1:19:50 PM	Glyssen.exe Information: 0 : 
1:19:50 PM	***
1:20:10 PM	Paratext user name: CMB Language Technology
1:20:10 PM	DesktopAnalytics: geolocation JSON data = {"status":"success","country":"Cameroon","countryCode":"CM","region":"LT","regionName":"Littoral","city":"Edéa","zip":"","lat":3.8,"lon":10.1333,"timezone":"Africa/Douala","isp":"CAMTEL additional","org":"","as":"AS15964 CAMTEL","query":"154.72.150.52"}
1:20:21 PM	SegmentIO succeeded: identify
1:20:21 PM	SegmentIO succeeded: identify
1:20:21 PM	SegmentIO succeeded: track
1:25:08 PM	Exception: Object reference not set to an instance of an object.
1:25:20 PM	SegmentIO succeeded: track

I agree that that doesn’t look helpful. If you want to try to install the “fixed” version, it is here. You can click the Log in as guest link. To upgrade Glyssen later, you will possibly need to manually uninstall this test version.

I uninstalled 6.0.6, and forced Windows and Norton to allow the 6.0.7 install against their will.
I got the same error as before, but then afterwards I got a green error and sent the message to Glyssen support (copied here).

Msg: Object reference not set to an instance of an object.
Class: System.NullReferenceException
Source: L10NSharp
Assembly: L10NSharp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=fd0b3e309a5b7c28
Stack:    at L10NSharp.XLiffUtils.XLiffTransUnitUpdater..ctor(XLiffLocalizedStringCache cache)
   at L10NSharp.XLiffUtils.XLiffLocalizedStringCache..ctor(ILocalizationManager owningManager, Boolean loadAvailableXliffFiles)
   at L10NSharp.XLiffUtils.XLiffLocalizationManager..ctor(String appId, String origExtension, String appName, String appVersion, String directoryOfInstalledXliffFiles, String directoryForGeneratedDefaultXliffFile, String directoryOfUserModifiedXliffFiles, IEnumerable`1 additionalLocalizationMethods, String[] namespaceBeginnings)
   at L10NSharp.LocalizationManagerInternal`1.<>c__DisplayClass6_0.<CreateXliff>b__0(String directoryOfWritableXliffFiles)
   at L10NSharp.LocalizationManagerInternal`1.Create(String desiredUiLangId, String appId, String appName, String relativeSettingPathForLocalizationFolder, Icon applicationIcon, Func`2 createMethod)
   at Glyssen.Program.SetUpLocalization() in C:\BuildAgent\work\9d74fe7404c9d8a6\Glyssen\Program.cs:line 409
   at Glyssen.Program.Main(String[] args) in C:\BuildAgent\work\9d74fe7404c9d8a6\Glyssen\Program.cs:line 188
Thread: 
Thread UI culture: en-US
Exception: System.NullReferenceException

--Error Reporting Properties--
Version: Version 6.0.7 (apparent build date: 13-Mar-2023)
CommandLine: "C:\Program Files\Glyssen\Glyssen.exe" 
CurrentDirectory: C:\Program Files\Glyssen
MachineName: MLEEYODA11
OSVersion: Windows 10 
DotNetVersion: 4.8.09032 (533320)
CLR Version (deprecated): 4.0.30319.42000
WorkingSet: 36151296
UserDomainName: MLeeYoda11
UserName: thoua
Culture: en-US

--Log--
Monday, March 13, 2023
4:57:11 PM	App Launched with ["C:\Program Files\Glyssen\Glyssen.exe" ]
4:57:11 PM	Glyssen.exe Information: 0 : 
4:57:11 PM	*** ICUDllLocator.Initialize: PATH is:
4:57:11 PM	Glyssen.exe Information: 0 : 
4:57:11 PM	C:\Program Files\Common Files\SIL;C:\Program Files\Zulu\zulu-11\bin\;C:\Program Files\SIL\FieldWorks 9\;C:\Program Files\Zulu\zulu-8\bin\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\TortoiseHg\;C:\Program Files\Calibre2\;C:\Program Files (x86)\Keyman\Keyman Developer\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Meld\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Apps\Python39\Scripts\;C:\Apps\Python39\;C:\Users\thoua\AppData\Local\Microsoft\WindowsApps;C:\Users\thoua\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\thoua\AppData\Local\GitHubDesktop\bin;C:\Users\thoua\AppData\Roaming\npm;C:\Users\thoua\AppData\Local\gitkraken\bin;C:\Program Files\SIL\FieldWorks 9\;C:\Program Files\SIL\FieldWorks 9\lib\x64
4:57:11 PM	Glyssen.exe Information: 0 : 
4:57:11 PM	***
4:57:14 PM	Paratext user name: CMB Language Technology
4:57:16 PM	DesktopAnalytics: geolocation JSON data = {"status":"success","country":"Cameroon","countryCode":"CM","region":"CE","regionName":"Centre","city":"Yaoundé","zip":"","lat":3.86174,"lon":11.5192,"timezone":"Africa/Douala","isp":"CAMTEL additional","org":"","as":"AS15964 CAMTEL","query":"154.72.183.162"}
4:57:27 PM	SegmentIO succeeded: identify
4:57:27 PM	SegmentIO succeeded: identify
4:57:27 PM	SegmentIO succeeded: track
4:57:27 PM	Exception: Object reference not set to an instance of an object.
Details of most recent events:
4:57:11 PM	App Launched with ["C:\Program Files\Glyssen\Glyssen.exe" ]
4:57:11 PM	Glyssen.exe Information: 0 : 
4:57:11 PM	*** ICUDllLocator.Initialize: PATH is:
4:57:11 PM	Glyssen.exe Information: 0 : 
4:57:11 PM	C:\Program Files\Common Files\SIL;C:\Program Files\Zulu\zulu-11\bin\;C:\Program Files\SIL\FieldWorks 9\;C:\Program Files\Zulu\zulu-8\bin\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\TortoiseHg\;C:\Program Files\Calibre2\;C:\Program Files (x86)\Keyman\Keyman Developer\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Meld\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Apps\Python39\Scripts\;C:\Apps\Python39\;C:\Users\thoua\AppData\Local\Microsoft\WindowsApps;C:\Users\thoua\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\thoua\AppData\Local\GitHubDesktop\bin;C:\Users\thoua\AppData\Roaming\npm;C:\Users\thoua\AppData\Local\gitkraken\bin;C:\Program Files\SIL\FieldWorks 9\;C:\Program Files\SIL\FieldWorks 9\lib\x64
4:57:11 PM	Glyssen.exe Information: 0 : 
4:57:11 PM	***
4:57:14 PM	Paratext user name: CMB Language Technology
4:57:16 PM	DesktopAnalytics: geolocation JSON data = {"status":"success","country":"Cameroon","countryCode":"CM","region":"CE","regionName":"Centre","city":"Yaoundé","zip":"","lat":3.86174,"lon":11.5192,"timezone":"Africa/Douala","isp":"CAMTEL additional","org":"","as":"AS15964 CAMTEL","query":"154.72.183.162"}
4:57:27 PM	SegmentIO succeeded: identify
4:57:27 PM	SegmentIO succeeded: identify
4:57:27 PM	SegmentIO succeeded: track
4:57:27 PM	Exception: Object reference not set to an instance of an object.

Could you look in C:\Users\accountname\AppData\Local\FCBH-SIL\Glyssen\localizations? There should be (at least) two files. I’m mainly interested in the Palaso.en.xlf file. If that’s missing or empty or starts off with characters that are clearly not valid XML, that’s probably the cause of the error message and ensuing crash (though we’d still need to figure out what might have caused that file to get generated improperly). Assuming that file exists, could you attach it so I could examine it?

I’m able to reproduce the error (empty Palaso.en.xlf file gets generated) by deleting the folder with the generated xlf files and then doing a clean install of Glyssen. So the problem is not specific to Windows 11.

So you’ve confirmed it’s a problem in fresh installs.

Palaso.en.xlf is the only file there at C:\Users*accountname* \AppData\Local\FCBH-SIL\Glyssen\localizations, and it is empty at 0kb.

Copies of the localizations are found here: C:\Program Files\Glyssen\localization, there is a Glyssen.en.xlf, but oddly not a Palaso.en.xlf.

I uninstalled, deleted the FCBH-SIL folder under appdata, disabled my antivirus and reinstalled 6.0.7. Same result as before and one emtpy file in the localisations.

So…if Palaso.en.xlf is not in the program files source, it makes sense that the installer can’t copy it successfully to AppData. Did it get removed from the installer?

There’s actually no need for the English localization file for Palaso to be installed. Looking at the installer, I really can’t see any reason why the Palaso.en.xlf file should be getting omitted, but it shouldn’t matter, since it is actually generated from the code. I have a fix ready to go, just waiting for a code review, but I have tested it, and it definitely works.

Ok. I can test it in the morning if still needed. Power’s out tonight here. Thanks for the quick work.

I’m trying to publish it now, but there’s an issue with the server that signs the installers, so most likely it won’t work.

Version 6.0.7 worked. This problem should be resolved.

Yes, As you said, I had to uninstall the previous test version, but it works now. Thanks!