Skip to content

Fix ISL "Goto" hanging in OSS by always replying to fetchQeFlag#1353

Closed
pfei-sa wants to merge 1 commit into
facebook:mainfrom
pfei-sa:pr1353
Closed

Fix ISL "Goto" hanging in OSS by always replying to fetchQeFlag#1353
pfei-sa wants to merge 1 commit into
facebook:mainfrom
pfei-sa:pr1353

Conversation

@pfei-sa

@pfei-sa pfei-sa commented Jul 13, 2026

Copy link
Copy Markdown

The "Goto" button (and the right-click "Goto" context-menu item) in sl web
silently did nothing in OSS builds (#1332). Both call gotoAction(), which awaits
runWarningChecks(), whose last check awaits
getQeFlag('isl_rebase_onto_warm_button').

getQeFlag posts a fetchQeFlag message and awaits a fetchedQeFlag reply. The
server handler was Internal.fetchQeFlag?.(...).then(...); in OSS there is no
Internal.fetchQeFlag, so the optional chain short-circuits and no reply is ever
posted. nextMessageMatching has no timeout, so getQeFlag never resolves,
gotoAction never dispatches the GotoOperation, and Goto appears dead. This
regressed when the "rebase onto warm" work started passing a hardcoded QE flag
name (bypassing the usual OSS null-gating).

Fix: always reply to fetchQeFlag, defaulting to false when Internal.fetchQeFlag
is unavailable (the correct OSS semantics), so the client never hangs.

Note: the sibling handlers fetchFeatureFlag and bulkFetchFeatureFlags share the
same Internal.x?.(...).then(...) short-circuit shape. They are not currently
reachable with a missing reply in OSS (feature flags are gated client-side via
Internal.featureFlags?.), so this focused change leaves them as-is; they should
get the same "always reply" guard as a follow-up.

Fixes #1332

@meta-cla meta-cla Bot added the CLA Signed label Jul 13, 2026
@meta-codesync

meta-codesync Bot commented Jul 13, 2026

Copy link
Copy Markdown

This pull request has been imported. If you are a Meta employee, you can view this in D111660481. (Because this pull request was imported automatically, there will not be any future comments.)

The "Goto" button (and the right-click "Goto" context-menu item) in `sl web`
silently did nothing in OSS builds (facebook#1332). Both call gotoAction(), which awaits
runWarningChecks(), whose last check awaits
getQeFlag('isl_rebase_onto_warm_button').

getQeFlag posts a `fetchQeFlag` message and awaits a `fetchedQeFlag` reply. The
server handler was `Internal.fetchQeFlag?.(...).then(...)`; in OSS there is no
Internal.fetchQeFlag, so the optional chain short-circuits and no reply is ever
posted. nextMessageMatching has no timeout, so getQeFlag never resolves,
gotoAction never dispatches the GotoOperation, and Goto appears dead. This
regressed when the "rebase onto warm" work started passing a hardcoded QE flag
name (bypassing the usual OSS null-gating).

Fix: always reply to fetchQeFlag, defaulting to `false` when Internal.fetchQeFlag
is unavailable (the correct OSS semantics), so the client never hangs.

Note: the sibling handlers fetchFeatureFlag and bulkFetchFeatureFlags share the
same `Internal.x?.(...).then(...)` short-circuit shape. They are not currently
reachable with a missing reply in OSS (feature flags are gated client-side via
Internal.featureFlags?.), so this focused change leaves them as-is; they should
get the same "always reply" guard as a follow-up.

Fixes facebook#1332
@facebook-github-tools

Copy link
Copy Markdown

@pfei-sa has updated the pull request. You must reimport the pull request before landing.

@meta-codesync meta-codesync Bot closed this in b41d6d1 Jul 14, 2026
@meta-codesync meta-codesync Bot added the Merged label Jul 14, 2026
@meta-codesync

meta-codesync Bot commented Jul 14, 2026

Copy link
Copy Markdown

This pull request has been merged in b41d6d1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Goto button on ISL is not clickable in 0.2.20260522-084851

2 participants