Local evaluation silently drops identity overrides on large environments

Open
#202 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
68/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
python
Domain
api, backend

Research direction

Trace the Python client's local-evaluation environment fetch and compare its pagination and refresh behavior with the reference implementation in Flagsmith/flagsmith-nodejs-client#205. Verify that all environment pages contribute to local evaluation, single-page environments remain unchanged, and slow refreshes log both durations; compare local and remote identity-override results.

Written by the indexing model from the issue text.

Description

Server-side SDKs cache the environment document for local evaluation, but the Python client today only ingests the first response page. For environments large enough to span multiple pages — typically those with many identity overrides — every override beyond the first page is missing from the local cache. Affected identities are evaluated against an incomplete environment and may receive flags that disagree with remote evaluation, with no error surfaced to the operator.

Acceptance criteria

  • Local evaluation returns the same identity-override results as remote evaluation regardless of how large the environment is.
  • Existing users on environments small enough to fit a single page see no behaviour or configuration change.
  • When fetching a full environment takes longer than the configured refresh interval, the SDK logs a warning naming both durations, so the operator knows to raise the interval or trim the environment.

Parent: Flagsmith/flagsmith#4664
Reference implementation: Flagsmith/flagsmith-nodejs-client#205

Dominant language
Python
Stars
24
Forks
12
Avg merge
15h 43m
Merged PRs (30d)
4

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Flagsmith/flagsmith-python-client

All issues in Flagsmith/flagsmith-python-client

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.