Skip to content

fix: Require launchdarkly-server-sdk 8.19 so data source failures stay recoverable - #42

Merged
tanderson-ld merged 1 commit into
mainfrom
ta/sdk-2787/floor-bump
Oct 29, 2026
Merged

tanderson-ld merged 1 commit into
mainfrom
ta/sdk-2787/floor-bump

Conversation

@tanderson-ld

@tanderson-ld tanderson-ld commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Requirements

Describe the solution you've provided

Bumps the launchdarkly-server-sdk floor from ~> 8.15 to ~> 8.19.

Before 8.19, a transport error the SDK classified as unrecoverable — e.g. a 401, including one returned erroneously during a momentary service incident — permanently stopped the data source. The provider then correctly reported a PROVIDER_ERROR ("permanently shut down") that never cleared, and recovery required a process restart. Since launchdarkly-server-sdk 8.19.0, every transport failure is retried indefinitely and the data source recovers on its own, so OFF is reachable only via close(). The provider's status surface (ERROR from a shutdown data source is permanent; everything else recovers to READY) is only guaranteed when 8.19+ is underneath — this makes that the only resolvable configuration.

Also adds an end-to-end test for the recovery contract that 8.19 makes routine: a failed initialization reports ERROR, and the provider transitions to READY once the data source becomes valid (spec/provider_recovery_spec.rb).

Testing: bundle exec rspec (74 examples, 0 failures) and bundle exec rubocop (clean), resolving launchdarkly-server-sdk 8.19.1 and openfeature-sdk 0.8.1.

Related issues

SDK-2787


Note

Overview
Raises the minimum launchdarkly-server-sdk dependency from ~> 8.15 to ~> 8.19, so installs always sit on a release where transport failures are retried indefinitely and the data source can recover without a process restart (matching the OpenFeature provider’s ERROR → READY behavior on recovery).

Adds spec/provider_recovery_spec.rb, which covers the end-to-end contract: failed initialization leaves the client in ERROR, and simulating a VALID data source status via DataSourceStatusListener moves provider status back to READY.

Reviewed by Cursor Bugbot for commit d65c7dd. Bugbot is set up for automated code reviews on this repo. Configure here.

…y recoverable

Before 8.19, a transport error the SDK classified as unrecoverable (for
example a 401, including one returned erroneously during a service
incident) permanently stopped the data source, and the provider's ERROR
state correctly never cleared. Since 8.19 the SDK retries every
transport failure indefinitely, so the provider's documented behavior —
ERROR from a shutdown data source is permanent, everything else
recovers — only holds when 8.19+ is actually underneath.

Also adds an end-to-end test that a failed initialization reports READY
once the data source becomes valid, which is the recovery contract the
8.19 retry behavior makes routine.
@tanderson-ld
tanderson-ld requested a review from a team as a code owner October 28, 2026 20:15
@tanderson-ld
tanderson-ld merged commit 53f8e8b into main Oct 29, 2026
10 checks passed
@tanderson-ld
tanderson-ld deleted the ta/sdk-2787/floor-bump branch October 29, 2026 13:07
tanderson-ld pushed a commit that referenced this pull request Oct 29, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.3.1](0.3.0...0.3.1)
(2026-10-29)


### Bug Fixes

* Allow openfeature-sdk 0.7 and 0.8
([#38](#38))
([4040bce](4040bce))
* Require launchdarkly-server-sdk 8.19 so data source failures stay
recoverable
([#42](#42))
([53f8e8b](53f8e8b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Overview**
> **Release Please** PR that publishes **0.3.1** by bumping the version
from **0.3.0** in `.release-please-manifest.json`,
`lib/ldclient-openfeature/version.rb`, and the `SDK_VERSION` example in
`PROVENANCE.md`.
> 
> `CHANGELOG.md` gains a **0.3.1** section (2026-10-29) under **Bug
Fixes**, documenting what ships in this release: wider compatibility
with **openfeature-sdk** **0.7** and **0.8**, and a minimum
**launchdarkly-server-sdk** **8.19** so data source failures remain
recoverable.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
21bdcfc. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants