Local evaluation silently drops identity overrides on large environments
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
Research direction
Start by locating the Ruby client's local-evaluation environment fetch and compare its pagination behavior with the Flagsmith Node.js reference implementation mentioned in the issue. Verify local and remote identity-override results on multi-page environments, preserve single-page behavior, and confirm that slow refreshes log both durations as described in the acceptance criteria.
Written by the indexing model from the issue text.
Description
Server-side SDKs cache the environment document for local evaluation, but the Ruby 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
- Ruby
- Stars
- 12
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Flagsmith/flagsmith-ruby-client
-
Local evaluation buckets percentage splits with the server key, so results differ from FlagsmithOpen
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 4/5 3-5 days Newbie friendliness 55/100
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
-
Dependency DashboardOpen
Difficulty 3/5 1-2 days Newbie friendliness 15/100
-
Difficulty 4/5 3-5 days Newbie friendliness 42/100
All issues in Flagsmith/flagsmith-ruby-client
Similar issues
-
Dependencies view: `getParent` loops forever on untitled documents, extension host runs out of memoryPossibly taken A pull request linked to this issue is open or already merged. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
area/web interface
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
mastodon/mastodon#41000 · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 82/100
zerocracy/judges-action#2743 ·
Maintainers usually reply within 8 days
-
Python 3.15 supportPossibly taken @amnesiaof claimed this today. OpenL: python L: python:uv
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
dependabot/dependabot-core#16524 · 1 comment ·
Maintainers usually reply within 1 day
-
content good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
rubyevents/rubyevents#2182 ·
Maintainers usually reply within 1 day