Merged
Conversation
kinyoklion
commented
Feb 4, 2026
| case GOODBYE: | ||
| return FDv2SourceResult.goodbye(((FDv2ProtocolHandler.FDv2ActionGoodbye) res).getReason(), fdv1Fallback); | ||
| String reason = ((FDv2ProtocolHandler.FDv2ActionGoodbye) res).getReason(); | ||
| logger.info("Goodbye was received from the LaunchDarkly connection with reason: '{}'.", reason); |
Member
Author
There was a problem hiding this comment.
### Requirement 3.3.5
> The SDK **MUST** log the following message at the `info` level when a `goodbye` event is encountered. The message **MUST** include the reason.
>
> `Goodbye was received from the LaunchDarkly connection with reason: '{reason}'.`
kinyoklion
commented
Feb 4, 2026
| this.reason = reason; | ||
| } | ||
|
|
||
| public static Status goodbye(String reason) { |
Member
Author
There was a problem hiding this comment.
Added these factories to make it a bit tidier in usage.
tanderson-ld
approved these changes
Feb 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
Low Risk
Low risk: primarily adds logging and threads a
reasonstring throughGOODBYEstatus results; behavior changes are limited to observability and an extra status field.Overview
FDv2
GOODBYEhandling now captures and exposes the server-provided reason end-to-end:FDv2SourceResult.Statusadds areasonfield (withgetReason()), andFDv2SourceResult.goodbye()now stores that reason instead of discarding it.Both polling (
PollingBase) and streaming (StreamingSynchronizerImpl) paths now log an info message when agoodbyeis received and pass the extracted reason intoFDv2SourceResult.goodbye(...). Tests are updated to assertreasonis null for non-goodbye statuses and equals the expected string for goodbye events.Written by Cursor Bugbot for commit b20c3c4. This will update automatically on new commits. Configure here.