Skip to content

Comments

fix: Prevent immediate polling on recoverable error#399

Merged
jsonbailey merged 1 commit intomainfrom
jb/sdk-1748/prevent-immediate-polling-retry
Jan 13, 2026
Merged

fix: Prevent immediate polling on recoverable error#399
jsonbailey merged 1 commit intomainfrom
jb/sdk-1748/prevent-immediate-polling-retry

Conversation

@jsonbailey
Copy link
Contributor

@jsonbailey jsonbailey commented Jan 13, 2026

Note

Implements controlled backoff for recoverable HTTP errors and simplifies loop control.

  • Replace self._event with self._interrupt_event and clear it at sync start
  • After recoverable error (INTERRUPTED), wait poll_interval on self._interrupt_event before retrying
  • Use self._interrupt_event.wait(poll_interval) for the regular poll cadence and to break on stop()
  • stop() now sets self._interrupt_event to interrupt any pending waits

Written by Cursor Bugbot for commit 02090b5. This will update automatically on new commits. Configure here.

@jsonbailey jsonbailey requested a review from a team as a code owner January 13, 2026 16:32
@jsonbailey jsonbailey merged commit da565a2 into main Jan 13, 2026
16 checks passed
@jsonbailey jsonbailey deleted the jb/sdk-1748/prevent-immediate-polling-retry branch January 13, 2026 17:30
jsonbailey added a commit that referenced this pull request Feb 10, 2026
🤖 I have created a release *beep* *boop*
---


##
[9.15.0](9.14.1...9.15.0)
(2026-02-10)


### Features

* Drop support for python 3.9
([#393](#393))
([5b761bd](5b761bd))
* Update ChangeSet to always require a Selector
([#405](#405))
([5dc4f81](5dc4f81))


### Bug Fixes

* Add context manager for clearer, safer locks
([#396](#396))
([beca0fa](beca0fa))
* Address potential race condition in FeatureStore update_availability
([#391](#391))
([31cf487](31cf487))
* Allow modifying fdv2 data source options independent of main config
([#403](#403))
([d78079e](d78079e))
* Mark copy_with_new_sdk_key method as deprecated
([#353](#353))
([e471ccc](e471ccc))
* Prevent immediate polling on recoverable error
([#399](#399))
([da565a2](da565a2))
* Redis store is considered initialized when `$inited` key is written
([e99a27d](e99a27d))
* Stop FeatureStoreClientWrapper poller on close
([#397](#397))
([468afdf](468afdf))
* Update DataSystemConfig to accept list of synchronizers
([#404](#404))
([c73ad14](c73ad14))
* Update reason documentation with inExperiment value
([#401](#401))
([cbfc3dd](cbfc3dd))
* Update Redis to write missing `$inited` key
([e99a27d](e99a27d))

---
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]
> **Low Risk**
> Release-only changes (version strings and documentation) with no
functional code modifications in this diff.
> 
> **Overview**
> Bumps the SDK release from `9.14.1` to `9.15.0` across version sources
(`pyproject.toml`, `ldclient/version.py`, release-please manifest) and
updates `PROVENANCE.md` to reference the new version.
> 
> Updates `CHANGELOG.md` with the `9.15.0` release notes, including FDv2
EAP breaking API adjustments (e.g., `ChangeSetBuilder.finish()` now
requires a `Selector`, and `DataSystemConfig.synchronizers` supports
multiple synchronizers), Python 3.9 support drop, and a set of bug-fix
entries.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
71a9224. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: jsonbailey <jbailey@launchdarkly.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