Validation error on a second device for subscriptions - Woocommerce integration kit

Hello everybody,

several users of my protected workbook are receiving this error message when they try to activate the protected workbook on a second device:

“can not validate your subscription, no previous activation was found in the order database”

The product is associated to a 1 year subscription, whit 3 variations that allow to activate the application on 1, 2 or 3 devices.

The users report that the activation on first device is always successfull, for the second device receive the error message above.

How can I fix it?


An exctract from the json file:

“variations”: {

            "10670": {
                "usehardwarelocking": 1,
                "maxactivperorder": 1,
                "shownagscreen": 0

“10671”: {
“usehardwarelocking”: 1,
“maxactivperorder”: 2,
“shownagscreen”: 0

“10672”: {
“usehardwarelocking”: 1,
“maxactivperorder”: 3,
“shownagscreen”: 0


Do you allow manual activation?

Yes, I do.
So I need to ask the ID hardware of the customer I suppose.
But is it possible to automate the second activation?

I add further details to the error.

The customers activate successfully the protected workbook on the second device.
But when they launch it, they receive the error message:

“Cannot validate your subscription, no previous activation was found in the order database”


The protected workbook works normally on the first device indeed.

Furthermore I noticed that the ID hardware of the second device is not saved in the personalized field xlspadlock_activations_XXXX in the order page of woocommerce, while the ID hardware of the first device is correctly saved.

So the problem is not the activation process, it works properly. I think there is a bug in the validation process of the subscription for a second device.

Waiting for your instructions



It’s not a bug: it’s because validation requires an initial online activation. If users activate using the manual way, online validation will fail with the error message you get. Because manual activation does not bind the existing activation to the order on the activation server.
When you create keys for manual activation, be sure to disable validation in the Key Generator properties. Thus, validation will be avoided. It’s not a problem if you have hardware-locked keys or keys with time restrictions.

I’m sorry, I better explain the issue.

Nobody of my customers that encounter this issue performed manual activation. All of them used online activation.

The online activation on the first device was successful and the ID hardware is saved in the woocommerce order page of the subscription.

The online activation on the second device was successful too, but when they launch the protected workbook, they receive the error message “Cannot validate your subscription, no previous activation was found in the order database”.

Furthermore the ID hardware of the second device is not saved in the woocommerce order page.

They are stuck because they can’t cancel their activation and ask for a manual activation, because the only message window they see is the initial error message.

P.S. all my customers that bought two activation product version encountered the same issue, so the problem is not related to the single user device, but I think it is related to the online validation process.

How can I fix it?



I recently bought the XLS Padlock and started to setup and test the woocommerce toolkit and find this product so awesome. However, I followed the steps in the guide and get questiones that is related to @Macro. I think the validation procedure is kind of confusing regarding to the system ids in the “xlspadlock_activations” field.

What I thought the “xlspadlock_activations” can do:
I wished this custom field can help manage all the devices. For example, my customer has two available activations, he can ask for changing his device, then I will remove one of the activated device by removing the system id in the “xlspadlock_activations”. Then the customer has one slot so he can activate on another device, he will conduct the initial activation on his new device and “xlspadlock_activations” can be appended accordingly.

What I tested:
I tested on my own device after conducted a successful initial activation. I removed the system id in “xlspadlock_activations” and hope that I can activate again like the first time, however, I got the error like @Macro, it shows “can not validate your subscription,…”. So it seems that once activated, the activation info is recorded and removing system id in “xlspadlock_activations” can’t reset the activation. If order is removed, it still can’t reset.

What I found might be helpful:
I found that in the MainController.php (I tested classical order), the logic is that the activation information is stored in the validationkey.txt. Everytime doing a validation, the toolkit will fetch and decrypt the activation information and compare to the woocommerce order information. If a device that has been activated before but not shown in “xlspadlock_activations”, the error will show. It means that removing the system id from xlspadlock_activations can’t reset the activation and thus can’t achieve the service of unbind and rebind like I mentioned above. (I might be wrong, I don’t know anythng about php.)

It seems that there is something wrong for @Macro that his customer successfully activated but failed to append new system id in “xlspadlock_activations” so the error occurs. Can I kindly suggest that when doing validation around system_id, first align the stored crypted info with what’s in xlspadlock_activations, and update validationkey.txt (if possible), so that

  1. re-bind and re-activation is possible (issues like @Macro faced con be solved by re-activation)
  2. we can provide more flexible service to our customer, for example, they asked for change device, and later want to change back, etc.

Thanks for this awesome product I really love it and sincely hope to help it get better and better!

1 Like

Tried again, seems that all activated device will be stored and by pass the activation and goes to validation. So if “xlspadlock_activations” does not contain the system_id there will be error.
So if accidently remove the system_id or “xlspadlock_activations” fails to update you will have to let user provide the system_id

Hi, I can confirm I’m having the exact same issue.

To add to @marcodepisapia’s post, when I manually append the system ID of the 2nd device in the activation section of the order page, validation is successful. When I remove it validation continues to fail again. Each time I enter the activation code after validation fails, activation is successful, but the validation straight afterwards fails.

Also, I noticed there is no ‘XLS Padlock Notification: (#X) Activated’ notification after activation in the order notes, whereas there is for non-subscription orders.


1 Like

Thank you for your insightful feedback and analysis. It’s this kind of input that helps us continually improve our products.

You’ve touched on an important aspect that we’ve been actively working on for the upcoming 2023 version of XLS Padlock. This includes the ‘Deactivation’ feature, which will allow for the deactivation of existing keys.

This new feature will communicate with the server to properly remove the system ID that is stored in WooCommerce for the device which is “deactivated”. It will also allow for the transfer of activations from one computer to another without the need for manual intervention by the developer.

These enhancements should hopefully provide greater flexibility and convenience for both developers and end-users.

Once again, thank you for your feedback :wink:

I perfomed a new test about the issue of this post.
I tried to remove the ID hardware of the device in the order page and I receive the error message:

“Cannot validate your subscription, no previous activation was found in the order database”

whit no possibility for the user to do anything. The user can’t insert a new activation key after the error window message, so he is stuck.

So the bug is in the activation process of the 2nd device, because the algorithm doesn’t append the ID hardware of the 2nd device in the custom field xlspadlock_activations_XXXX in the order page.

I hope there will be a bug fix as soon as possible.


That would be awesome!
May I please know when will the update ready? I almost finished setup my website and only wait for packaging the workbook. If 2023 version is soon to come I definitely willing to wait for it to avoid future transfer.

1 Like

I’m very happy that a new version of xls padlock is coming up.
In the meanwhile I wait for news from you about the bug of this thread.


I have a temporary solution for this issue.
I created a blank protected workbook to send the customer for the second activation.
The only purpose is to allow the client to obtain the ID hardware of his 2nd device using the userfrom of the activation procedure.
So the client sends me the ID hardware and I manually add it in the personalized field of the woocommerce order page.
Maybe this solution can be useful for you too.

1 Like

I add further details to the issue of this discussion.

The first and second activation are successfully completed, but the ID hardware of the second activation is not appended in the personalized field xlspadlock_activations_10669.

As you can see in the attached image, in the field xlspadlock_activations_10669 of the woocommerce order page there is only the ID hardware of the first device.

The absence of the second device ID hardware is the origin of the validation error.

@gdgsupport is it possible to have any news about the bug of this thread and about the time it will take to fix it?

Looks like I have the same issue, there is a bug in the subcontroller.php:

Can you please provide a fix for this bug?
thank you

I’m waiting for that bugfix too. Hope it will be available soon :pray:

waiting since may? Sounds too much…
If the activation is successful, that’s the moment when the next system ID’s should be added to order custom field, in order to get a successful validation.
doactivation function is not working properly, online activation is useless if a user can activate only once, each user will have to subscribe separately.

I know. I’m in trouble because I have to provide manually for the second activation for each user.
It’s very ugly.