Showing results for 
Search instead for 
Did you mean: 
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Did you get an answer that solved your problem? Please mark it as an Accepted Solution so others with the same problem can find the answer easily. X

ThingWorx 8.1 Cross Platform Highlights and Q&A: Licensing

No ratings

Licensing summary, installing 8.1:

- Now instance specific license used which prevents license sharing and protects our intellectual property further

- 2 paths for getting up and running with a license:

         -Connected: platform-settings configuration only

         -Disconnected: text file generated, self-serve creation from PTC support portal, license_capability_response.bin generated to be placed in platform folder


Connected / Disconnected mode

  • LicensingSubsystem::GetLicenseState returns :
    • UNINITIALIZED in disconnected mode
    • LICENSE_EXISTS in connected mode


User Journey

Refer to Licensing ThingWorx 8.1 and Later for specific instructions for generating a license for your instance


NOTE: Each instance needs a valid license file to be running.



- If any misconfiguration or connection failures occur, error messages will be thrown to Application log

Example: unable to fetch license file with device id; Unable to connect to the PTC license server. Please make sure the LicensingConnectionSettings settings...

- Connection attempt will occur upon ThingWorx startup. If connection can't be made, instance will be following disconnected scenario

 -Make sure Pop Up Blockers are turned off



Platform Settings - Licensing

License Connection Settings (in platform-settings.json - plain text sample)

-new section for licensing connection strings:

-user name - used to connect to ptc support portal

-password - encrypted (recommended) or plain text password used to connect to ptc support portal


    "LicensingConnectionSettings": { 


 New Services on Licensing Subsystem

- GetInstanceID - returns instance/device ID which is created at startup

- WriteLicenseUsageData - writes encrypted license usage (same as system data table) to ThingworxStorage\reports\LicenseUsageReport folder


Instance ID

  • The license file is now bound to the platform Instance ID aka Device ID - (unlike most other PTC products where the license is bound to the hardware : CPUID, MAC, ...)
  • This Instance ID is generated during first startup and stored in the database
  • Instance ID is accessible in composer with LicensingSubsystem::GetInstanceID


Q: What happens when license files are bad or missing?

A: If there is an invalid license file, with 8.0 valid license.bin needs to be in the folder before starting up; tomcat will crash. In 8.1 no need for license file as long as connected (platform-settings.json), no need to take an extra step, dynamic connection.  In disconnected scenario, ThingWorx will run for 30 days in limited mode with monitoring mashup accessible to check logs.


Q: Where is the InstanceID stored ?

A: It's stored in the database


Q: Will the instanceID change during updates (minor 8.1.0 to 8.1.1)

A: Device id's don't change.


Q: What will happen in disconnected scenario if there is no valid license after 30 days? The application will not start anymore or user is not able to login?

A:  It shuts down, so there is no more "limited" mode. However, a user can come along on day 55 (for example) and can drop in a valid license and start the web app to get it fully running.


Q: What happens if the customer has to reinstall the platform after the license has been fetched ? Is it possible to "return" the license ?

A: Reinstalling the platform results in the generation of a new Device ID, therefore a new license file will need to be generated.



Just published 2 articles on the topic :

CS271439 - ThingWorx 8.1 Licensing

CS271552 -  (limited mode) Composer hangs when saving entities in ThingWorx 8.1

Version history
Last update:
‎Sep 29, 2017 02:28 PM
Updated by:
Labels (1)