> For the complete documentation index, see [llms.txt](https://docs.cstplus.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cstplus.org/documentation/troubleshooting/license-issues.md).

# License Issues

## License Issues

***

### "License not found" on activation

The key does not exist in our system. Double-check you copied the full key from your account dashboard at account.cstplus.org with no extra spaces.

***

### "hwid\_mismatch" on activation

This key is already bound to a different server. Each license key can only be active on one machine at a time.

To move the license to a new server, contact support to reset the hardware binding. Once reset, activate the key on the new server normally.

{% hint style="warning" %}
Do not try to clone or copy an activated server disk image to a new VPS. The hardware ID is derived from the machine, so the clone will trigger an `hwid_mismatch` immediately.
{% endhint %}

***

### Panel is locked after login

The license has expired or been deactivated. The lock screen shows the current license status.

To reactivate: enter your license key on the lock screen or via SSH:

```bash
cstplus license activate YOUR_KEY
```

If you believe your subscription is active, contact support with your license key and account email.

***

### A "DMCA complaint" or account-hold banner appears

If the panel shows an amber banner at the top saying your account needs attention (for example, an open DMCA or abuse complaint), your account is on a temporary **hold**, not locked.

{% hint style="info" %}
A hold is **non-blocking**: your channels keep running and the panel stays fully usable. You normally have **24 hours** to resolve it.
{% endhint %}

To resolve it:

1. Open your account portal at [account.cstplus.org](https://account.cstplus.org) and sign in.
2. Review the complaint and follow the steps shown to resolve it.

The banner clears on its own once the hold is lifted. The panel re-checks your license status automatically, so you do not need to reload.

{% hint style="warning" %}
If the matter is not resolved in time, the account may be **suspended**, which does stop channels and lock the panel. If you believe the hold is a mistake, contact support with your license key and account email before it escalates.
{% endhint %}

***

### License check interval

CST+ re-checks the license on a configurable interval (default 30 minutes). If you reactivate a license, the panel may stay locked until the next check fires.

To force an immediate re-check without waiting:

```bash
systemctl restart cstplus-control
```

{% hint style="info" %}
Restarting the control plane does not affect running channels. They continue airing without interruption.
{% endhint %}

***

### Channels stopped unexpectedly

If all channels stopped at the same time with no manual action, the most common cause is license expiry or revocation.

Check license status:

```bash
cstplus license status
```

If the license is valid and channels still stopped, check the control plane logs:

```bash
journalctl -u cstplus-control -n 100
```

***

### "License required" on all API requests

This means the license enforcement is active and the current license is invalid. Every `/api/*` endpoint returns `403 license_required` until the license is reactivated.

Exceptions that still work without a valid license:

* `POST /api/auth/login`
* `GET/POST /api/license/*`

Use these to log in and activate your key without needing API access.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.cstplus.org/documentation/troubleshooting/license-issues.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
