Skip to main content

Thingsboard Instance reset

https://github.com/thingsboard/thingsboard/issues/2221#issuecomment-560313339

https://github.com/thingsboard/thingsboard/issues/3008#issuecomment-650076578

Bei folgender Thingsboard Fehlermeldung...

Terminating application due to critical License Error ACTIVE_INSTANCES_CAPACITY_EXCEEDED(104)

oder (siehe unten bei Hilfe zu Fehlercode 107)

License Error: INVALID_LICENSE_CHECK_SECRET(107) - Invalid secret request sequence number!

oder oder (siehe unten bei Hilfe zu Fehlercode 105)

License Error: INSTANCE_NOT_FOUND(105) - Instance not found!

 

... hat das Lizenzportal von Thingsboard erkannt, dass mehrere Instanzen versuchen, ein und die selbe Thingsboard Lizenz zu verwenden. Das kann zB passieren wenn Docker sich verschluckt hat und ein neuer Thingsboard Container gestartet wurde, obwohl der andere noch lief, oder wenn der Hostserver von einem Backup wiederhergestellt wurde.

  1. TB docker container stoppen
  2. im License portal https://license.thingsboard.io unter Subscriptions den Subscription Plan finden > 'Manage instances':
  3. Instanz aus der aktuellen Lizenz deaktivieren:

    image.png

    in einigen Fällen reicht es bereits aus, die Instanz du deaktivieren. Falls nicht, weitermachen:

  4. in tb docker container mit bash gehen und /usr/share/thingsboard/bin/instance-license.data löschen:
    rm -f /usr/share/thingsboard/bin/instance-license.data
  5. tb docker container wieder starten

Danach legt TB eine neue Instanz an:

image.png

Bei Fehlercode 107 bzw. 105

Offizielles Thingsboard Video zu dem Thema:
https://www.youtube.com/watch?v=2khu3RP0TGE&t=73s

Wenn Fehlercode 107 kommt, kann es sein, dass die instance-license.data nicht im vorgesehenen Ordner auffindbar ist. In diesem Fall müssen die Instanzen im Thingsboard Lizenzportal nicht nur deaktiviert, sondern ganz gelöscht werden. Das ist nicht weiter tragisch, weil die Instanzen bei jeder neuen Instanz automatisch angelegt werden, solange genügend 'instance counts', also Anzahl erlaubter gleichzeiter Instanzen, zur Verfügung stehen (in meinem Fall 1).

Wenn keine /usr/share/thingsboard/bin/instance-license.data aufzufinden ist, könnte es an folgender Zeile in der docker-compose.yaml liegen:

TB_LICENSE_INSTANCE_DATA_FILE: /data/license.data

image.png

Diese Zeile gibt einen alternativen Speicherort für die  instance-license.data an. In dem Fall heißt das Kommando, um die hinterlegte Lizenz zu 'vergessen' im Docker Container also 

rm -f /data/license.data

Man kann auch das TB_LICENSE_SECRET in ein absichtlich falsches ändern und dann wieder zurück in's richtige. Dann wird auch die license.data neu angelegt, allerdings ist license.data löschen viel einfacher und richtiger.