[GH-ISSUE #2447] Cannot validate license #2170

Closed
opened 2026-04-16 09:12:34 -05:00 by GiteaMirror · 2 comments
Owner

Originally created by @Peint on GitHub (Feb 10, 2026).
Original GitHub issue: https://github.com/fosrl/pangolin/issues/2447

Describe the Bug

cannot activate/validate license after stopping and restarting container

pangolin container logs

pangolin  | 2026-02-10T15:48:48+00:00 [error]: Malformed UTF-8 data
pangolin  | Stack: Error: Malformed UTF-8 data
pangolin  |     at Object.stringify (/app/node_modules/crypto-js/core.js:523:24)
pangolin  |     at WordArray.init.toString (/app/node_modules/crypto-js/core.js:278:38)
pangolin  |     at decrypt (file:///app/dist/server.mjs:3355:30)
pangolin  |     at License.check (file:///app/dist/server.mjs:3484:34)
pangolin  |     at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
pangolin  |     at async License.isUnlocked (file:///app/dist/server.mjs:3428:20)
pangolin  |     at async checkOrgAccessPolicy (file:///app/dist/server.mjs:3804:24)
pangolin  |     at async verifyOrgAccess (file:///app/dist/server.mjs:3924:27)
pangolin  | 2026-02-10T15:49:11+00:00 [error]: License validation request failed after 10 attempts
pangolin  | 2026-02-10T15:49:11+00:00 [error]: Error checking license status:
pangolin  | 2026-02-10T15:49:11+00:00 [error]: HTTP error! status: 400
pangolin  | Stack: Error: HTTP error! status: 400
pangolin  |     at License.phoneHome (file:///app/dist/server.mjs:3728:17)
pangolin  |     at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
pangolin  |     at async License.check (file:///app/dist/server.mjs:3528:23)
pangolin  |     at async License.isUnlocked (file:///app/dist/server.mjs:3428:20)
pangolin  |     at async checkOrgAccessPolicy (file:///app/dist/server.mjs:3804:24)
pangolin  |     at async verifyOrgAccess (file:///app/dist/server.mjs:3924:27)

ive read a few other issues and dns was mentioned there so i tried diffrent dns servers, tried curl to /healthcheck got 200, manualy curling /api/v1/license/enterprise/validate results in 401
please let me know if i can provide more information

Environment

  • OS Type & Version: debian 12
  • Pangolin Version: 1.15.2

To Reproduce

  1. start container
  2. add license
  3. restart container

Expected Behavior

license should work

Originally created by @Peint on GitHub (Feb 10, 2026). Original GitHub issue: https://github.com/fosrl/pangolin/issues/2447 ### Describe the Bug cannot activate/validate license after stopping and restarting container pangolin container logs ``` pangolin | 2026-02-10T15:48:48+00:00 [error]: Malformed UTF-8 data pangolin | Stack: Error: Malformed UTF-8 data pangolin | at Object.stringify (/app/node_modules/crypto-js/core.js:523:24) pangolin | at WordArray.init.toString (/app/node_modules/crypto-js/core.js:278:38) pangolin | at decrypt (file:///app/dist/server.mjs:3355:30) pangolin | at License.check (file:///app/dist/server.mjs:3484:34) pangolin | at process.processTicksAndRejections (node:internal/process/task_queues:103:5) pangolin | at async License.isUnlocked (file:///app/dist/server.mjs:3428:20) pangolin | at async checkOrgAccessPolicy (file:///app/dist/server.mjs:3804:24) pangolin | at async verifyOrgAccess (file:///app/dist/server.mjs:3924:27) pangolin | 2026-02-10T15:49:11+00:00 [error]: License validation request failed after 10 attempts pangolin | 2026-02-10T15:49:11+00:00 [error]: Error checking license status: pangolin | 2026-02-10T15:49:11+00:00 [error]: HTTP error! status: 400 pangolin | Stack: Error: HTTP error! status: 400 pangolin | at License.phoneHome (file:///app/dist/server.mjs:3728:17) pangolin | at process.processTicksAndRejections (node:internal/process/task_queues:103:5) pangolin | at async License.check (file:///app/dist/server.mjs:3528:23) pangolin | at async License.isUnlocked (file:///app/dist/server.mjs:3428:20) pangolin | at async checkOrgAccessPolicy (file:///app/dist/server.mjs:3804:24) pangolin | at async verifyOrgAccess (file:///app/dist/server.mjs:3924:27) ``` ive read a few other issues and dns was mentioned there so i tried diffrent dns servers, tried curl to /healthcheck got 200, manualy curling /api/v1/license/enterprise/validate results in 401 please let me know if i can provide more information ### Environment - OS Type & Version: debian 12 - Pangolin Version: 1.15.2 ### To Reproduce 1. start container 2. add license 3. restart container ### Expected Behavior license should work
GiteaMirror added the stale label 2026-04-16 09:12:34 -05:00
Author
Owner

@github-actions[bot] commented on GitHub (Feb 25, 2026):

This issue has been automatically marked as stale due to 14 days of inactivity. It will be closed in 14 days if no further activity occurs.

<!-- gh-comment-id:3955620643 --> @github-actions[bot] commented on GitHub (Feb 25, 2026): This issue has been automatically marked as stale due to 14 days of inactivity. It will be closed in 14 days if no further activity occurs.
Author
Owner

@miloschwartz commented on GitHub (Feb 25, 2026):

The malformed error is usually from the encrypted values in the DB no longer being able to be decrypted by the server secret. This could happen if you changed the server secret without rotating it.

A few things that usually fix this and prevent it from happening:

  1. Set DNS to 1.1.1.1/8.8.8.8/etc on the Pangolin container
  2. Clear all license keys from the DB so you can re-add them cleanly: https://docs.pangolin.net/self-host/advanced/container-cli-tool#clear-license-keys
  3. If you ever change the secret, use the rotate command: https://docs.pangolin.net/self-host/advanced/container-cli-tool#rotate-server-secret
<!-- gh-comment-id:3961854220 --> @miloschwartz commented on GitHub (Feb 25, 2026): The malformed error is usually from the encrypted values in the DB no longer being able to be decrypted by the server secret. This could happen if you changed the server secret without rotating it. A few things that usually fix this and prevent it from happening: 1. Set DNS to 1.1.1.1/8.8.8.8/etc on the Pangolin container 2. Clear all license keys from the DB so you can re-add them cleanly: https://docs.pangolin.net/self-host/advanced/container-cli-tool#clear-license-keys 3. If you ever change the secret, use the rotate command: https://docs.pangolin.net/self-host/advanced/container-cli-tool#rotate-server-secret
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/pangolin#2170