19900: Catch exceptions loading process container request 19900-process-404-handling
authorStephen Smith <stephen@curii.com>
Tue, 31 Jan 2023 16:47:53 +0000 (11:47 -0500)
committerStephen Smith <stephen@curii.com>
Tue, 31 Jan 2023 16:47:53 +0000 (11:47 -0500)
Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen@curii.com>

src/store/processes/processes-actions.ts
src/store/workbench/workbench-actions.ts

index 4dfef5a03ba63af81a436248624eecc6f2be7e3b..305a4e7c027253daaf9db5fa2ef2ce925ba1395f 100644 (file)
@@ -22,11 +22,17 @@ import { ProjectResource } from "models/project";
 import { UserResource } from "models/user";
 import { CommandOutputParameter } from "cwlts/mappings/v1.0/CommandOutputParameter";
 import { ContainerResource } from "models/container";
+import { ContainerRequestResource } from "models/container-request";
 
 export const loadProcess = (containerRequestUuid: string) =>
-    async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository): Promise<Process> => {
-        const containerRequest = await services.containerRequestService.get(containerRequestUuid);
-        dispatch<any>(updateResources([containerRequest]));
+    async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository): Promise<Process | undefined> => {
+        let containerRequest: ContainerRequestResource | undefined = undefined;
+        try {
+            containerRequest = await services.containerRequestService.get(containerRequestUuid);
+            dispatch<any>(updateResources([containerRequest]));
+        } catch {
+            return undefined;
+        }
 
         if (containerRequest.outputUuid) {
             try {
index 0ad3fb8e55e496e7b3e9274ee1fd47935842ae73..761ffb75e80a2a00a9b861d93fdd80352047fe43 100644 (file)
@@ -579,11 +579,13 @@ export const loadProcess = (uuid: string) =>
   handleFirstTimeLoad(async (dispatch: Dispatch, getState: () => RootState) => {
     dispatch<any>(loadProcessPanel(uuid));
     const process = await dispatch<any>(processesActions.loadProcess(uuid));
-    await dispatch<any>(
-      activateSidePanelTreeItem(process.containerRequest.ownerUuid)
-    );
-    dispatch<any>(setProcessBreadcrumbs(uuid));
-    dispatch<any>(loadDetailsPanel(uuid));
+    if (process) {
+      await dispatch<any>(
+        activateSidePanelTreeItem(process.containerRequest.ownerUuid)
+      );
+      dispatch<any>(setProcessBreadcrumbs(uuid));
+      dispatch<any>(loadDetailsPanel(uuid));
+    }
   });
 
 export const updateProcess =