Problem
SequentialQueue's process() function commits queueFlushedData (which writes HAS_LOADED_APP to Onyx) whenever a queued request resolves, regardless of the response's jsonCode. Because HttpUtils.xhr resolves application-level failures instead of rejecting them, a failed-but-resolved OpenApp or ReconnectApp request still committed HAS_LOADED_APP: true. Once that happens, the next app boot runs ReconnectApp only and can no longer retry a full OpenApp to recover from a stuck loading state.
Solution
Gate queueFlushedData commits in SequentialQueue.process() so they only run when the response's jsonCode is CONST.JSON_CODE.SUCCESS. A failed-but-resolved request no longer marks the app as loaded, preserving self-healing on the next boot. Added unit tests and updated SEQUENTIAL_QUEUE.md to document the behavior.
PR
#96041
Issue Owner
Current Issue Owner: @BartekObudzinski
Problem
SequentialQueue'sprocess()function commitsqueueFlushedData(which writesHAS_LOADED_APPto Onyx) whenever a queued request resolves, regardless of the response'sjsonCode. BecauseHttpUtils.xhrresolves application-level failures instead of rejecting them, a failed-but-resolvedOpenApporReconnectApprequest still committedHAS_LOADED_APP: true. Once that happens, the next app boot runsReconnectApponly and can no longer retry a fullOpenAppto recover from a stuck loading state.Solution
Gate
queueFlushedDatacommits inSequentialQueue.process()so they only run when the response'sjsonCodeisCONST.JSON_CODE.SUCCESS. A failed-but-resolved request no longer marks the app as loaded, preserving self-healing on the next boot. Added unit tests and updatedSEQUENTIAL_QUEUE.mdto document the behavior.PR
#96041
Issue Owner
Current Issue Owner: @BartekObudzinski