Affected: Relay Proxy with self-managed Big Segment store (Redis or DynamoDB)
Symptoms
You may see one or more of the following when the Relay Proxy cannot connect to or synchronize with the Big Segment store:
- Relay logs show the error
BigSegmentSynchronizer: Synchronization failedor timeouts when contactinghttps://sdk.launchdarkly.com/sdk/big-segments/revisions. - Relay logs or outbound traffic show repeated or very frequent requests to
/sdk/big-segments/revisions(the Relay cannot complete sync and retries repeatedly). - Relay logs show the error
big segment store status query returned error: timestamp not found(DynamoDB) or that an item wastoo large to store in DynamoDB and was dropped. - A
GETrequest to the Relay/statusendpoint showsbigSegmentStatuswithpotentiallyStale: trueor alastSynchronizedOntimestamp that is older than expected (for example, more than two minutes in the past). - Server-side SDKs evaluating flags that use Big Segments return evaluation reasons with
bigSegmentsStatus: "STALE", or segment-based rules do not match as expected. - Flag evaluations that depend on Big Segments serve the default variation or a later rule instead of the intended segment-based rule.
Cause
The Relay Proxy must do two things to support Big Segments: it must stay connected to LaunchDarkly to receive Big Segment revision updates (via the SDK API at sdk.launchdarkly.com), and it must read from and write to your Big Segment store (Redis or DynamoDB). If either path fails, the Relay cannot keep the store up to date.
Common causes include network or egress issues (the Relay host cannot reach sdk.launchdarkly.com or the store within timeouts), store unavailability or misconfiguration (wrong host, port, table, prefix, or credentials), multiple Relay replicas writing to the same store (DynamoDB transaction conflicts), or DynamoDB item size limits (single segment exceeding 400KB). The Relay does not support Redis Cluster or Redis Sentinel.
Solution
Follow these steps to identify and fix the Relay's connection to the Big Segment store.
1. Check the Relay status endpoint
Send a GET request to the Relay’s /status endpoint (for example, http://your-relay-host:8030/status). In the response, find the bigSegmentStatus section for the environment that uses Big Segments.
Check lastSynchronizedOn and potentiallyStale. If potentiallyStale is true or lastSynchronizedOn is much older than two minutes, the Relay has not successfully synced Big Segment data recently. Use this to confirm that the problem is with Big Segment sync rather than general Relay connectivity.
2. Verify Relay-to-LaunchDarkly connectivity for Big Segments
The Relay’s Big Segment worker must reach https://sdk.launchdarkly.com/sdk/big-segments/revisions to fetch revision updates. From the same host or network where the Relay runs, run:
curl -svI https://sdk.launchdarkly.com/sdk/big-segments/revisions --max-time 10A fast 401 Unauthorized indicates the path is reachable. If the request times out or fails, the Relay will not be able to sync. Check firewall rules, proxy settings, and DNS from that host:
dig +short sdk.launchdarkly.comIf you use a forward proxy, ensure the Relay is configured to use it and that the proxy allows CONNECT to sdk.launchdarkly.com:443. Allowlist LaunchDarkly endpoints for outbound HTTPS where required.
3. Verify Relay-to-store connectivity
Confirm that the Relay can reach the Big Segment store.
-
Redis. Check host, port, and TLS (for example,
rediss://). Ensure the Relay is not pointed at a Redis Cluster or Sentinel setup, as these are not supported. From the Relay host, test connectivity (for example, withredis-clior a short script) to the same address and port the Relay uses. - DynamoDB. Check table name, region, and credentials. Ensure the Relay process has the correct AWS credentials or IAM role and that the table exists and is in the expected region. Confirm the table schema matches what the Relay expects for a Big Segment store (see the Relay Proxy documentation for the required structure).
Ensure the store is not down or in a failed state (for example, Redis persistence or DynamoDB capacity issues).
4. Confirm Big Segment store configuration
In the Relay configuration (environment variables or config file), verify:
- The store type (Redis or DynamoDB) and connection details match the store you intend to use.
- The key prefix matches what your server-side SDKs use. For Big Segments, the prefix must be the environment’s client-side ID, not the SDK key. A wrong prefix causes the Relay and SDKs to use different keys and leads to stale or missing segment data.
- Any credentials (Redis password, AWS credentials) are correct and not expired.
After changing configuration, restart the Relay and check /status and logs again.
5. Review Relay logs
Enable appropriate log levels and look for Big Segment or store-related errors. Common log messages include synchronization failures, connection timeouts to sdk.launchdarkly.com, or Redis/DynamoDB connection errors. For DynamoDB, watch for "timestamp not found," "too large to store in DynamoDB and was dropped," or TransactionConflict / "Transaction cancelled." Logs will often indicate whether the failure is between the Relay and LaunchDarkly or between the Relay and the store.
6. Restart the Relay after store or network recovery
If the store or network was temporarily unavailable, the Relay may need a restart to re-establish connections and resume syncing. After fixing store availability or network issues, restart the Relay and confirm that bigSegmentStatus.lastSynchronizedOn in /status updates and that potentiallyStale becomes false. Server-side SDKs that share the same store should then see up-to-date Big Segment data (and no longer report bigSegmentsStatus: "STALE" where the cause was Relay sync).
If these steps do not resolve the issue, contact LaunchDarkly Support with Relay logs, your Relay version, and Big Segment configuration (without secrets), and the output of the connectivity checks above.