Skip to content

CT-2332 | Fix false-success during transport when websockets are turned on - #403

Open
codingLogan wants to merge 3 commits into
masterfrom
lr/CT-2332-transport-hardening
Open

codingLogan wants to merge 3 commits into
masterfrom
lr/CT-2332-transport-hardening

Conversation

@codingLogan

Copy link
Copy Markdown
Collaborator

Currently there is a false-success condition that happens during OAuth, when it really ends in a No DDA scenario

  1. A member is created for OAuth
  2. The member returns from OAuth to firefly, and is marked as CONNECTED by Firefly (and is not yet aggregating)
  3. The widget's signal is to stop polling if CONNECT and is_being_aggregated is false. Because it gets this signal, it thinks the job is done and exits successfully
  4. ⚠️ We expect the UI to show the No DDA messaging, not a Successes

If the websockets are fast, it falls into that problem. If the websockets subscribe a tad too late, things work as they should. It is a race-condition type of behavior. This branch fixes the problem.

@codingLogan codingLogan self-assigned this Sep 24, 2026
@codingLogan
codingLogan force-pushed the lr/CT-2332-transport-hardening branch from 230b029 to 3cc9383 Compare September 24, 2026 22:46
…he finished job

Firefly sets an OAuth member to CONNECTED on the redirect before any job
exists. Over websockets that update can arrive after the widget has started
its own job; runJobSchedule$ took it as "done" and, unable to load a job,
assumed the job it had started finished, showing Success! while the real
job ended IMPEDED (CT-2332).

The update names the job the member had before runJob was called: null for
a first job, the previous job's guid for a returning member. runJobSchedule$
now records that guid when it calls runJob and keeps observing while a
CONNECTED idle update still names it. `undefined` is left alone because
hosts are not required to send the field. After a 409 the widget started
nothing, so only the null case is detectable there.

Verified in SAND with websockets on: 50/50 NoDDA runs pass (was ~30%
failing).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@codingLogan
codingLogan force-pushed the lr/CT-2332-transport-hardening branch from 3cc9383 to 0a582a8 Compare September 24, 2026 23:51
codingLogan and others added 2 commits September 24, 2026 18:59
…fter a 409

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The repo is moving internal and the backend always sends the field (a
guid or null), so the gate no longer distinguishes undefined from null.
Drops the test that pinned that distinction and the doc sentence that
told hosts they could omit the field.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@codingLogan
codingLogan marked this pull request as ready for review September 25, 2026 02:32
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.

1 participant