Logic revalidating plugin on each run

I have had two users reporting a strange behavior that I was not able to reproduce: it looks like Logic wants to validate my plugin each time it is run. Apparently auval’s tests are successful, but it gets revalidated each time nonetheless.
Reverting to the previous version of the plugin fixes the issue.

This update uses the same version of JUCE (6.1.3), but has seen a lot of refactoring and rewriting of existing classes, so it is difficult for me to pinpoint what the culprit might be.

Does this kind of situation ring a bell to someone?

Only thing that springs to mind as a possibility is if you are reporting a version number of 0 anywhere? check the plist to make sure the version number is being correctly reported there?

1 Like

Thanks, that is most certainly the problem I had!

1 Like

Did this solve your issue? We also get reports of plugins getting revalidated on each run and we also pass auval just fine…

Can’t remember precisely but I think in my case it was related to the version issue Anthony mentioned.

Thanks for getting back to me. Interestingly we still have users reporting this, mostly on older systems.
Maybe this commit is related?

Our versions are formatted like this: year.version (for example 2026.1). This is getting quite a large number when converted to a hex integer - could this be the cause?

If your version is 2026.1 that change shouldn’t have any change on the version number reported, it looks like it would only have a change if you had four parts to the version number. As you have two parts, I would expect the version number to come out the same?

Have you got a version number that is consistently causing rescans? it should be repeatable for everybody. If so, is 2026.1 an example of a version causing this issue? Maybe it requires a specific Logic or auval version (in which case maybe logic or the auval version installed are at fault?)

I assume 2026.1 comes out as 0x07EA0100? I think it should be split like so

0xAAAABBCC where

  • A represents the Major version (in this case 2026), converted to hex (0x07EA)
  • B represents the Minor version (in this case 1), converted to hex (0x01)
  • C represents the Patch version (in this case 0), converted to hex (0x00)

This does mean there are limits to the numbers but 2026.1 should be fine, and even if it wasn’t I would have hoped that any change in the version number would only result in the plugin being scanned once?

Something in the back of my mind is telling me that I recall some issue in which going to a lower version caused an issue. However, IIRC the issue was that the plugin wasn’t being scanned rather than it was continuously being scanned, and this would have been a long time ago!

The thing I reported about a version number of 0 was something Apple told me about. The idea is that you can set the version number to 0 during development (or for debug builds) and then your plugin should always be scanned.

I can’t think of anything else that would cause it to continuously scan.

The version number for the AU version doesn’t come out the same, it will get converted to a Hex Integer in any case. Here is the relevant part of my .plist file:

<key>AudioComponents</key>
	<array>
		<dict>
			<key>version</key>
			<integer>132776192</integer>
		</dict>
	</array>

I don’t have a version number that is consistently causing rescans. We are not able to reproduce the issue, but a few users on older systems reported that Logic needs to rescan each time. So I thought it might be related to that version number failing when getting parsed. I can’t think of anything else, any ideas? Our plugins pass auval fine, they also pass the Logic scan fine, but for some reason they get rescanned on each run…