Inconsistent webhook behaviour?

We are observing an apparently inconsistent behaviour in licenses webhook events and data.

Context: we have created a license using one of our license templates. Validity = 365 days, 1 max activation, Expiration strategy DELAYED, Node Locked.

We do the following: (we keep detailed logs of the payloads etc. if you find them useful)

  1. Create the license => triggers license.created webhook
  2. Activate the license => triggers license.updated + license.first-activated webhooks (in this order)
  3. Extend the license to 365+ days => license.updated

We do not understand why:

  1. After (1: creation), the license webhook payload data has { ... "perpetual": "true" ... }. We would expect it to be false. At this point, expiresAt=null which is expected as per DELAYED strategy and not activated yet. Also, totalActivations=0, activatedAt=null which is expected too.
  2. After (2: activation), license.updated webhook payload data changes nothing other than the metatada. Still, perpetual=true, expiresAt=null, totalActivations=0, activatedAt=null.
  3. After (2: activation), license.first-activated webhook payload data only changes activatedAt=<timestamp>. Still, perpetual=true, expiresAt=null and totalActivations=0. This unexpected at this point because the license has indeed been activated. I would expect perpetual=false, expiresAt=<timestamp> and totalActivations=1.
  4. After (3: extension), it is only when these change as we expected from step (2): perpetual=false, expiresAt=<timestap>, totalActivations=1.
  5. We never get a license.expiresAt.updated webhook as a consequence of any of these interactions. We have ensured we do subscribe to this webhook event. We would expect to receive it at some point.

Our typical use case only does (1) license creation + (2) license activation, not license extension. We are expecting perpetual, expiresAt and totalActivations to get meaningful values when (1) → (2).

Are we missing anything here? Could this be a problem with webhooks?

Thanks

1 Like