Skip to main content

Quick diagnosis checklist

Before diving into specific symptoms, run through these checks:
  1. Is the SDK initialized?await client.initialize() must complete before any isEnabled() call.
  2. Does the flag exist? — Check the Admin API: GET /flags with the flag key.
  3. Is the flag enabled for the environment?GET /flags/{id}/environments/{envId} and check isEnabled.
  4. Is the environment active? — A revoked environment rejects all evaluation requests with 401.
  5. Does the SDK key match the environment? — The key is environment-scoped; a key from staging won’t resolve production flags.
  6. Is the flag archived? — Archived flags always return false.

Symptom: isEnabled() throws FLAG_NOT_FOUND

Symptom: Flag returns false when expected true

Symptom: Flag doesn’t update after admin change

If you need near-instant propagation for a specific flag, set ttlOverrideSeconds on the flag-environment configuration to a low value (e.g. 5 seconds).

Symptom: 401 Unauthorized

The API returns the same 401 error for both “key doesn’t exist” and “environment is revoked” — it does not distinguish them to prevent key enumeration.

Symptom: 404 Not Found

Symptom: 409 Conflict

Symptom: SDK key visible in browser devtools

Symptom: Targeting rules don’t match

Symptom: Percentage rollout always returns same result

Symptom: Network errors on startup

Symptom: cacheTtlSeconds not behaving as expected

The config option cacheTtlSeconds is stored as-is and used directly as milliseconds in the cache’s TTL. Despite the name:
  • Default 60000 = 60 seconds (correct)
  • cacheTtlSeconds: 30 = 30 milliseconds, not 30 seconds
  • Use 60000 for 60 seconds, 300000 for 5 minutes
This is a known naming inconsistency in the SDK.

Still stuck?

  • Check the Evaluation API reference for exact request/response shapes
  • Check the Admin API reference for endpoint details
  • Review audit logs for who changed what and when
  • Contact the platform team: Slack #feature-flags-support or file an issue in the feature-flags-platform repo — include environment name, flag key, and timestamp