#26231 [Bug]: Airgapped license verification fails when the license payload contains "." (e.g. a domain-like user_id)
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### What happened?
### Summary
`LicenseCheck._verify_license_str` splits the base64-decoded license on the **first** `.` byte:
https://github.com/BerriAI/litellm/blob/main/litellm/proxy/auth/litellm_license.py#L177-L178
```python decoded = base64.b64decode(license_key) message, signature = decoded.split(b".", 1) # <-- bug ```
The format is `<JSON payload>.<RSA signature>`, but the JSON payload itself can contain `.` bytes (0x2E) — most commonly inside `user_id` (domain-like IDs, e.g. `"example.co.jp-license-litellm"`). When it does, `split(b".", 1)` cuts the payload in the middle, so `message` is truncated JSON and `signature` contains the rest of the payload plus the real signature. Both JSON parsing and RSA verification then fail, and `is_premium()` returns `False` for what is a perfectly valid license.
### Scope of impact
- All airgapped/offline licenses whose JSON payload contains `.` (dot) bytes. - This is not rare: any `user_id` that looks like a domain (`company.com-…`, `*.co.jp-…`) or contains a version/decimal will hi…