<@ULVA73B9P> using self-hosted prefect 3.6.15 we a...
# ask-marvin
e
@Marvin using self-hosted prefect 3.6.15 we are seeing bugs in the UI. A sub-flow can be still displayed as running while the main flow is Completed. Is there a github issue for that ?
m
Error: GitHub API error 422: {"message":"Validation Failed","errors":[{"message":"The listed users and repositories cannot be searched either because the resources do not exist or you do not have permission to view them.","resource":"Search","field":"q","code":"invalid"}],"documentation_url":"https://docs.github.com/v3/search/","status":"422"}
Sorry, I encountered an error while processing your request. Please try again.
n
(test)
@Marvin using self-hosted prefect 3.6.15 we are seeing bugs in the UI. A sub-flow can be still displayed as running while the main flow is
Completed
. Is there a github issue for that ?
m
thought for 359.7 seconds
Thanks for flagging this. I searched our tracker and couldn’t find an open issue that exactly matches “sub-flow shown as Running while the parent flow is Completed” in Prefect 3.x (including around 3.6.15). Here are the closest related reports I did find: - Tasks stuck as Running even though they completed (state desync symptoms) https://github.com/PrefectHQ/prefect/issues/19261 - Subflow subprocess not killed on cancel (Linux) — different trigger but related to child/parent lifecycle handling https://github.com/PrefectHQ/prefect/issues/17593 - Flow continues to run after cancelled (state mismatch) https://github.com/PrefectHQ/prefect/issues/17482 - Older 2.x-era subflow state confusion (not 3.x, but similar flavor) https://github.com/PrefectHQ/prefect/issues/9376 None of these are a direct match for “parent Completed while child shows Running,” so if you can reliably reproduce this on 3.6.15, it’s worth opening a new issue. A couple of quick checks that will help us determine if it’s a UI/WebSocket desync vs. a backend/orchestration issue: - How are you creating the subflow? - Calling another
@flow
from inside a flow, or using
run_deployment(..., as_subflow=True)
? - Is the child actually terminal in the API? If you can grab the run IDs, we can confirm with the client:
Copy code
import asyncio
  from prefect.client.orchestration import PrefectClient

  async def show_state(flow_run_id: str):
      async with PrefectClient() as client:
          fr = await client.read_flow_run(flow_run_id)
          print(fr.id, fr.state.type, fr.state_name)

  asyncio.run(show_state("<PARENT_FLOW_RUN_ID>"))
  asyncio.run(show_state("<CHILD_FLOW_RUN_ID>"))
- Are you running the UI behind a reverse proxy/ALB that may idle out or reset WebSocket connections? We’ve seen stale UI state if the WS drops and the page doesn’t reconnect cleanly. A quick refresh sometimes “fixes” the display, which indicates a front-end sync issue. If you’re able to try a patch upgrade, I’d also recommend bumping your self-hosted stack from 3.6.15 to a newer 3.6.x (current is 3.6.20) to pick up recent UI and event-streaming fixes: - Latest release notes: https://github.com/PrefectHQ/prefect/releases - 3.6.20 changelog: https://github.com/PrefectHQ/prefect/compare/3.6.19...3.6.20 If it still reproduces after upgrading, I’m happy to open a GitHub issue on your behalf. The most helpful details: - Exact Prefect version (server and workers), browser + proxy/load balancer setup (if any) - Whether the subflow was created via nested
@flow
or
run_deployment(..., as_subflow=True)
- Parent flow run ID and child flow run ID - Whether the API reports the child as terminal while the UI shows Running - Any screenshots or logs around the transition when the parent completed Send me those details and I’ll get a ticket filed.
n
not sure what happened with that 422, feel free to let me know if that happens again
in the future if you encounter an issue please open an issue here: https://github.com/PrefectHQ/marvin/issues
e
Thanks @Nate! Yes, I’ll report issues (if any) in the right repo, sorry.
n
no worries! thanks