Appearance
Error Codes
Every rejected request returns a short machine-readable code alongside an HTTP status. Match on the code, not the human-readable message, since messages may change. The table lists every code the runtime and dashboard APIs can return.
- Codes fall into a few families: bad input (bad_input, invalid_preset), auth and identity (unauthorized, invalid_service, invalid_runtime_key), license state (license_not_found, disabled, expired, device_mismatch), and delivery (ticket_expired, ticket_used, ticket_invalid).
- rate_limited means you exceeded the per-IP or per-plan request budget. Back off rather than retrying immediately.
- session_expired and ticket_expired are normal over time. Re-verify or request a fresh ticket instead of treating them as hard failures.
- Runtime guard errors point at delivery compatibility, not the license. Check that the deployed artifact matches the active service configuration.
| Code | Meaning |
|---|---|
| bad_input | The request contains missing, malformed, or unsupported input. |
| unauthorized | The request is missing the required authorization or the supplied credential is not valid. |
| not_logged_in | This dashboard action requires an active signed-in session. |
| invalid_service | The service ID is missing or does not identify an existing service. |
| service_disabled | The service exists but is currently disabled, so runtime requests are blocked. |
| service_archived | The service has been archived or deleted and is no longer available. |
| invalid_runtime_key | The runtime key is missing or does not match the selected service. |
| script_not_found | The requested script does not exist in the selected service. |
| script_required | The license is restricted to a script, but no script ID was supplied. |
| script_archived | The requested script has been archived or deleted and can no longer be delivered. |
| wrong_service | The license, runtime session, or ticket belongs to a different service. |
| wrong_script | The license, runtime session, or ticket does not authorize the requested script. |
| license_not_found | No license in the selected service matches the supplied customer key. |
| disabled | The customer license has been disabled or archived. |
| expired | The customer license has passed its expiration time. |
| device_mismatch | The license is already bound to a different device identifier. |
| rate_limited | The request limit was exceeded. Wait before retrying instead of sending requests in a loop. |
| session_expired | The runtime session is no longer valid. Verify the license again to create a new session. |
| ticket_expired | The single-use download ticket reached its expiration time. Request a new ticket. |
| ticket_used | The single-use download ticket has already been consumed. Request a new ticket. |
| ticket_invalid | The download ticket is missing, malformed, or unknown. |
| invalid_preset | The requested obfuscation preset is not supported. |
| account_required | This obfuscation action requires a signed-in FlareKey account. |
| obfuscator_unavailable | The obfuscation service is disabled or temporarily unavailable. |
| obfuscation_failed | FlareFuscator could not compile the submitted source. Check the returned message for the compiler detail. |
| history_expired | The saved obfuscation output passed its retention window and its code has been removed. |
| limit_exceeded | The request exceeds the applicable plan, preset, source-size, or usage limit. |
| loader_runtime_key_missing | The loader cannot run because its service has no usable runtime key configured. |
| loader_not_configured | The loader does not point to an active protected script or custom loader source. |