diff --git a/packages/edge/services/pegboard/src/ops/actor/get.rs b/packages/edge/services/pegboard/src/ops/actor/get.rs index af2a47e4a6..5be0e2e5af 100644 --- a/packages/edge/services/pegboard/src/ops/actor/get.rs +++ b/packages/edge/services/pegboard/src/ops/actor/get.rs @@ -115,7 +115,21 @@ pub async fn pegboard_actor_get(ctx: &OperationCtx, input: &Input) -> GlobalResu let actor_data = futures_util::stream::iter(actors_with_wf_ids) .map(|(actor_id, workflow_id)| async move { - let pool = &ctx.sqlite_for_workflow(workflow_id).await?; + let pool = &match ctx.sqlite_for_workflow(workflow_id).await { + Ok(x) => x, + Err(err) + if matches!( + err.as_workflow_error(), + Some(WorkflowError::WorkflowNotFound) + ) => + { + // Workflow is complete + return GlobalResult::Ok(None); + } + Err(err) => { + return GlobalResult::Err(err); + } + }; let (actor_row, port_ingress_rows, port_host_rows, port_proxied_rows) = tokio::try_join!( sql_fetch_one!(