Is Sonoma 14.4 Problematic?

I have three computers running Sonoma 14.4 which is just a days old update. Each one has lost my Panorama registration at least once under completely separate circumstances.

Two are identical Mini’s that I use for Panorama programming. On both of those machines, I’ve had the Panorama menus dim unexpectedly, creating the need to Force Quit.

On one it happened a couple of times while I was using Panorama Help and going back and forth with the files I was working with. I assumed it was something in my code, but couldn’t see a reason. Just now it happened on the other while working for some time in a set of files. I chose View Organizer and it never appeared, but the menus dimmed. Up until that instant, all was well.

And there’s my registration blown away yet again - and again a database is corrupted. In this case it’s a single user database in a separate set of files and on a separate computer from yesterday’s problematic files.

I found notes around the internet about Sonoma 14.4 having issues with some software. Is Panorama among them? Is Sonoma 14.4 possibly a part of my recent flood of issues?

I have also had to re-enter my registration information following updating to Sonoma 14.4.

I’ve tried to go back to 14.3 with no luck. On 14.4 my files keep corrupting.

I have also now got a corrupted database. I have used Carbon Copy Cloner to recover to a version prior to updating to Sonoma 14.4 and that can be opened OK. I am also getting messages saying I have been logged off when the database won’t open.

Looking at the integrity.plist in the package contents of the corrupted database and comparing it to the one in the database that isn’t corrupted, I suspect something has gone adrift. The good database seems to have strings 40 characters in length for each of the items that it is checking (e.g data.archive, forms.archive etc), while the corrupted database strings are all 32 characters in length and all end with an equals sign.

Assumed good integrity.plist (as database is OK):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>data.archive</key>
	<string>901e70f07b79baf857d2927dc0840afda5ca169d</string>
	<key>data.plist</key>
	<string>4e47c725d654b82c891c7ccf75fcb38951427a0c</string>
	<key>fieldconfig.archive</key>
	<string>01281ca7cf47a9bb9fa5871bc794ea4a1635312f</string>
	<key>forms.archive</key>
	<string>bc6e260e327fc852c0df3b728c38067f964bf004</string>
	<key>printinfo.archive</key>
	<string>873aa16eed6f54c4c3804797c34b41191ccc2d37</string>
	<key>procedures.archive</key>
	<string>13fb298dc1b71296aee682273c1710cb9e00ee0d</string>
	<key>settings.plist</key>
	<string>ec869a83345d2e39b5f5459c0f3e55b28a9b7bfb</string>
	<key>variables.archive</key>
	<string>390b9e7a2888950956b57dc6317d59e2cbd366d0</string>
</dict>
</plist>

Assumed bad integrity.plist (as database is corrupted):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>data.archive</key>
	<data>
	X94a50Hvdv/4vrVwaFUEYRszteU=
	</data>
	<key>data.plist</key>
	<data>
	xYa6DmGlQKK+pmPGNzGnThzqaFc=
	</data>
	<key>fieldconfig.archive</key>
	<data>
	3eRiw3eqZSDgO9nfiSbcUjXp/BU=
	</data>
	<key>forms.archive</key>
	<data>
	IFDghvx9ETHkJw9FwPjndayUUiQ=
	</data>
	<key>printinfo.archive</key>
	<data>
	hzqhbu1vVMTDgEeXw0tBGRzMLTc=
	</data>
	<key>procedures.archive</key>
	<data>
	Fe9QLvPr0QS0KRMDQuTDJwIT0zk=
	</data>
	<key>settings.plist</key>
	<data>
	7IaagzRdLjm19UWcDz5Vsoqbe/s=
	</data>
	<key>variables.archive</key>
	<data>
	OQueeiiIlQlWtX3GMX1Z4svTZtA=
	</data>
</dict>
</plist>

So this is possibly the problem, the integrity.plist has become corrupted and therefore can’t check the integrity of the database.

If this is the reason for the failure, is there a way to recreate the integrity.plist by telling Panorama to rebuild it from the existing files?

Of course the real question is why the integrity.plist appears to have become corrupted in the first place?

Without digging as deeply as you have, I found that turning off the Database Integrity allowed me to access the “corrupted” files again. The corruption message always referred to the plist.

Once I started experiencing the corruption I began making constant copies of the file I was working on. Oddly, when the corruption would occur, it seemed to also affect the back ups.

With the info from your sleuthing, I’m going to look at the involved the integrity.plists

I have found a way to recover the database:

  1. In Panorama Settings > Advanced, turn off Check database integrity when opening and closing.

  2. Open that corrupted database (this worked for me)

  3. File > Duplicate the database

  4. Save it (with new name)

  5. Close the duplicated database

  6. In Panorama Settings > Advanced, Turn on Check database integrity when opening and closing.

  7. Open the duplicated database; it all seems OK and the integrity.plist appaers to be Consistent with the database that isn’t corrupted.

PS. @JamesCook - Your post just beat me to it, but as I had typed it out, I decided to post it :slightly_smiling_face:

Great news Jon, and something worth trying.

Possibly another clue… without anything more than an after-the-fact observation, it seems that the corruption has occurred when I’ve open Help, View Search, View Organizer, Timer Workshop, and such. My first post about this is in another thread when Timer Workshop seemingly corrupted a file. The Sonoma 14.4 was not yet suspected.

This doesn’t look like corruption. This looks like the integrity.plist files are being created by entirely different code, when Panorama is running on Sonoma 14.4. In one file we have 30 byte hashes that are base64 encoded and placed between <string> and </string> tags, and in the other file we have 20 byte hashes that have been base64 encoded and placed between <data> and </data> tags.

Since we are all using the same version of Panorama, it must be Apple’s code that has changed.

I guess it depends on how you define corruption? :wink:

@dave That’s a good spot. It looks like Apple is doing the “corruption” then, if only by changing what they used to do prior to Sonoma 14.4?

I did update my version of XCode to the latest and also I think Command Line Tools.

Either way, we need a fix ASAP because making changes to the database at the moment is like skating on thin ice, even with a potential work around available (as I suggested above).

Amen! Over the past days I’ve written procedures over and over again. On a shared system I had no idea if it was safe to upload anything.

So on one machine/project, I’ve disabled the Database Integrity. On the other, I’ve set it aside and moved the project to an old Mini running Catalina.

In the very first beta version of Sonoma, right after WWDC last June, at least one Panorama user encountered symptoms that to the best of my recollection sound identical to the reports here. I was unable to figure out the problem, but fortunately it was corrected in the second or third Sonoma beta. Unfortunately, it sounds like this problem, whatever it is, may be back. Let’s hope that the next release of Sonoma corrects the problem. In the meantime, I would suggest turning off the Database Integrity feature if you are encountering this problem. For users that haven’t yet updated to macOS 14.4, perhaps it would be a good idea to hold off.

Note that the integrity check feature is primarily designed to warn you if your file has been corrupted due to a drive problem. Drive problems are extremely rare. In fact, in the couple of years since the integrity check feature was added to Panorama, there haven’t been any instances where this feature has flagged an actual drive problem. So it’s probably not a big deal to run with the integrity check feature turned off.

1 Like

It’s reassuring to know that I’m not taking any great risk to have the integrity check off. I can be productive again!