diff --git a/canvas/src/components/ContextMenu.tsx b/canvas/src/components/ContextMenu.tsx
index 0b8fce505..41dc32543 100644
--- a/canvas/src/components/ContextMenu.tsx
+++ b/canvas/src/components/ContextMenu.tsx
@@ -172,7 +172,7 @@ export function ContextMenu() {
const nodeId = contextMenu.nodeId;
closeContextMenu();
try {
- await api.post(`/workspaces/${nodeId}/pause`, {});
+ await api.post(`/workspaces/${nodeId}/pause?cascade=true`, {});
updateNodeData(nodeId, { status: "paused" });
} catch (e) {
showToast("Pause failed", "error");
@@ -184,7 +184,7 @@ export function ContextMenu() {
const nodeId = contextMenu.nodeId;
closeContextMenu();
try {
- await api.post(`/workspaces/${nodeId}/resume`, {});
+ await api.post(`/workspaces/${nodeId}/resume?cascade=true`, {});
updateNodeData(nodeId, { status: "provisioning" });
} catch (e) {
showToast("Resume failed", "error");
diff --git a/canvas/src/components/__tests__/ContextMenu.test.tsx b/canvas/src/components/__tests__/ContextMenu.test.tsx
index ac404d7a4..01d337a64 100644
--- a/canvas/src/components/__tests__/ContextMenu.test.tsx
+++ b/canvas/src/components/__tests__/ContextMenu.test.tsx
@@ -385,7 +385,7 @@ describe("ContextMenu — item actions", () => {
render();
fireEvent.click(screen.getByRole("menuitem", { name: /pause/i }));
await act(async () => { /* flush */ });
- expect(mockPost).toHaveBeenCalledWith("/workspaces/n1/pause", {});
+ expect(mockPost).toHaveBeenCalledWith("/workspaces/n1/pause?cascade=true", {});
expect(mockStoreState.updateNodeData).toHaveBeenCalledWith("n1", { status: "paused" });
});
@@ -395,7 +395,7 @@ describe("ContextMenu — item actions", () => {
render();
fireEvent.click(screen.getByRole("menuitem", { name: /resume/i }));
await act(async () => { /* flush */ });
- expect(mockPost).toHaveBeenCalledWith("/workspaces/n1/resume", {});
+ expect(mockPost).toHaveBeenCalledWith("/workspaces/n1/resume?cascade=true", {});
});
});
diff --git a/canvas/src/store/canvas.ts b/canvas/src/store/canvas.ts
index 7f90e8937..23273f552 100644
--- a/canvas/src/store/canvas.ts
+++ b/canvas/src/store/canvas.ts
@@ -324,7 +324,7 @@ export const useCanvasStore = create((set, get) => ({
batchPause: async () => {
const ids = Array.from(get().selectedNodeIds);
const results = await Promise.allSettled(
- ids.map((id) => api.post(`/workspaces/${id}/pause`))
+ ids.map((id) => api.post(`/workspaces/${id}/pause?cascade=true`))
);
const failed: string[] = [];
results.forEach((r, i) => {