Yeah, we can help. If you're using the latest version (currently 5.0.2), then we'll be happy to dig in.
It sounds like you're asking about different things. If this is *all* about VMs, then we have a FAQ about it. Long story short: we detect VMs accurately. And we give you multiple choices in what to do with them (disable the VM, allow activations on VM, force use of TurboFloat, etc).
https://wyday.com/limelm/help/faq/#in-vm
If this is a separate issue, namely, a customer is activated fine then one day they become deactivated, then this is a genuine issue. The first thing we'll ask to look at is your code. The reason is that this sounds like a common misunderstanding of how our API works, and your handling the error from IsGenuineEx incorrectly (namely, on TA_FAIL from that function you shouldn't tell them they're deactivated, instead you should call TA_IsActivated() to check if the failure is because it's a different computer or because the customer has gone X+Y days without reverifying)
If your code looks good (we actually need to see it so we can help you – We don't need to see app code-- just code related to your licensing). Then we'll need to see a representative product key.
In other words we need to see a product key that's allowed for only one machine that a customer reports that they were deactivated and they didn't change machines. Not a key that's allowed for multiple machines. Just one that a customer is reporting becoming deactivated and can't immediately reactivate.
To sum up:
- Use the latest TA.
- VMs are accurately detected and we provide multiple options for customers, including ignoring it if you want.
- Make sure your code is correct. My guess is that this is the problem.
- Provide a representative product key of this problem.
The handful of times we've had this “problem” reported over the years it was either incorrectly written code (not handling TA_IsGenuineEx return codes correctly) or an end-user lying about it being the “same computer”.
But provide us enough information and we'll help.