Linux system
Offline node-locked license - successfully activated
When running old SW version with LexActivator lib ver 3.21.2
IsLicenseValid - returns LA_OK
When SW is updated to a bit newer one using LexActivator lib ver 3.32.3:
First call for IsLicenseValid - returns LA_E_FEATURE_ENTITLEMENTS_INVALID
There is nothing in license related to feature entitlements
There is nothing in code related to feature entitlements
Later call for IsLicenseValid - returns LA_OK
This is a bit confusing, especially as error code seems totally unrelated to our code.
It is important to note that if IsLicenseValid() returns an error, it continues to return the same error on subsequent calls unless a license sync or reactivation is performed. Since you are observing a different result on later calls, this indicates that the issue may not be originating from IsLicenseValid() initially, but ActivateLicenseOffline().
We recommend using a new offline activation response file instead of an old one, and it is always recommended to use the latest version of our SDK. The current latest one is 3.42.0
Older activation response files, generated before the introduction of feature entitlements, do not contain the required fields. The newer SDK versions expect those fields during validation, which can lead to such inconsistencies.
So, this means that libraries and stored activation data on target are not backwards compatible. To be honest, this is a disappointment. If our customer has activated license with older SW and library, then using latest LexActivator would obviously not help. And in this case we have distributed our SW with some specific LexActivator version. Can’t change that history either.
Therefore only option would be reactivation, which does not sound too good.
One important thing is now to know if we can face this same backwards compatibility issue with LexFloatServer/Client? If our customers sets up LexFloatServer and our SW, then later upgrades our SW with updated LexFloatClient. Is there a possibility for incompatibility issues with those?
It seems there has been a misunderstanding, and we would like to clarify.
Existing customers who upgrade the LexActivator version will not encounter any LA_E_FEATURE_ENTITLEMENTS_INVALID error from IsLicenseValid(). Their applications will continue to run without any issues, stored activation data on target is backward compatible.
The only restriction applies to the ActivateLicenseOffline() method. Older response files (created before 22 May 2025) cannot be used with the ActivateLicenseOffline() function.
In our previous response, we also wanted to confirm whether the error was returned by IsLicenseValid() or ActivateLicenseOffline(), as it is unlikely for IsLicenseValid() to return this error.
Regarding the concern about LexFloatServer, it too remains backward compatible with the license data, ensuring that older activations would continue to function correctly without any required changes.
Yes, there was misunderstanding. Ok, it sounds good that libraries are designed to be backwards compatible.
But yet, it is indeed IsLicenseValid() that returns LA_E_FEATURE_ENTITLEMENTS_INVALID in SW using 3.32.3. ActivateLicenseOffline() was not called. Sequence as follows:
In my original message “Later call for IsLicenseValid - returns LA_OK” means subsequent call without restarting the SW. After restart first IsLicenseValid() always returns same error LA_E_FEATURE_ENTITLEMENTS_INVALID
When downgrading to original version (which was also used to activate license), all is good. Then upgrading again to newer one, same error thing happens again.
We would be happy to take a closer look at this. Kindly share a replicable sample with us at support@cryptlex.com, including a dummy license key embedded for testing purposes.