WarpLink

Errors

The WarpLink API error response format, a reference of common error codes, and how to troubleshoot failed requests.

All API errors return a consistent JSON structure.

Error Format

The details field is optional and appears on validation errors to indicate which fields failed.

Error Codes

HTTP StatusCodeDescription
400VALIDATION_ERRORRequest body or query parameters failed validation
400IMMUTABLE_FIELDAttempted to update a field that cannot be changed
400INVALID_IDThe provided ID is not a valid UUID
400INVALID_APP_IDThe app_id does not belong to your organization
401UNAUTHORIZEDMissing or invalid API key
403FORBIDDENThe key lacks the required scope. Attribution requests also return this when an API key is used instead of an SDK key
404NOT_FOUNDThe requested resource does not exist
409SLUG_TAKENThe custom slug is already in use
409DUPLICATE_APPAn app with this bundle ID or package name exists
410GONEThe link has expired
429RATE_LIMIT_EXCEEDEDToo many requests
500INTERNAL_ERRORAn unexpected server error

Troubleshooting

"UNAUTHORIZED" on every request

  • Verify your API key starts with wl_live_
  • Check the header format: Authorization: Bearer wl_live_YOUR_API_KEY
  • Ensure the key hasn't expired or been deleted

"FORBIDDEN" on attribution requests

  • Install attribution requires an SDK key. An API key cannot record installs, whatever scopes it holds
  • Create one at API Keys > SDK key and pass it to WarpLink.configure()
  • Telltale symptom: deep links resolve normally but no installs appear in your dashboard
  • destination_url must include the protocol (https://)
  • slug must be 2-100 characters, lowercase alphanumeric with hyphens
  • expires_at must be an ISO 8601 date in the future
  • tags is limited to 20 items, each up to 50 characters
  • Custom slugs must be unique per domain
  • Try a different slug or omit slug to auto-generate one
  • Reserved slugs (api, admin, dashboard, etc.) cannot be used

On this page