Thingsboard Instance reset
Vor einem geplantem Serverneustart oder Backup wiederherstellen eines Servers, immer den Docker Container herunterfahren. Dann spart man sich die Instanzprobleme und damit diesen Artikel
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.
- TB docker container stoppen
- im License portal https://license.thingsboard.io unter Subscriptions den Subscription Plan finden > 'Manage instances':

- Instanz aus der aktuellen Lizenz deaktivieren:
in einigen Fällen reicht es bereits aus, die Instanz du deaktivieren. Falls nicht, weitermachen:
- 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 - tb docker container wieder starten
Danach legt TB eine neue Instanz an:
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
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.


