aglinxinyuan opened a new pull request, #5781:
URL: https://github.com/apache/texera/pull/5781

   ### What changes were proposed in this PR?
   
   When workflow execution initialization fails, the error was recorded into 
the execution metadata store but never pushed to the websocket, so connected 
frontend clients saw nothing — particularly for failures during 
`WorkflowExecutionService` construction, which happens *before* the execution 
is published to subscribers.
   
   `WorkflowService.initExecutionService`'s catch arm now, after 
`errorHandler(e)` records the fatal error, pushes a `WorkflowErrorEvent` 
(carrying the recorded fatal errors) to `errorSubject` — the workflow-level 
channel that `connect()` subscribers listen on — so init-time failures surface 
in the UI.
   
   | init failure | before | after |
   |---|---|---|
   | during `WorkflowExecutionService` construction (pre-publish) | logged + 
stored, invisible to the UI | `WorkflowErrorEvent` delivered to the frontend |
   | during `executeWorkflow()` | recorded; UI delivery depended on 
subscription timing | `WorkflowErrorEvent` delivered to the frontend |
   
   The push is extracted into a small `reportFatalErrorsToSubscribers` method 
so it can be unit-tested without a database (the init path itself is DB-bound).
   
   ### Any related issues, documentation, discussions?
   
   Discovered while splitting #5700 (loop operators) into smaller PRs; this fix 
is independent of that feature and applies to `main` on its own.
   
   ### How was this PR tested?
   
   New `WorkflowServiceSpec` (TDD, red → green): pins that 
`reportFatalErrorsToSubscribers` delivers a `WorkflowErrorEvent` to a 
`connect()` subscriber carrying exactly the fatal errors recorded in the 
execution state store (single error, and all errors when several are present). 
`sbt "WorkflowExecutionService/testOnly *WorkflowServiceSpec"` passes (2/2); 
scalafmt + scalafix clean.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Co-authored with Claude Opus 4.8 in compliance with ASF.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to