diff --git a/test/e2e/live/sandbox-survival.test.ts b/test/e2e/live/sandbox-survival.test.ts index 2ae366ba860..a8c0fb16e9e 100644 --- a/test/e2e/live/sandbox-survival.test.ts +++ b/test/e2e/live/sandbox-survival.test.ts @@ -187,7 +187,7 @@ test( "install and register the OpenClaw sandbox", "prove baseline sandbox access and inference", "write persistent OpenClaw markers", - "restart the gateway and reconnect the sandbox", + "restart the gateway and recover the sandbox", "recheck state and inference after restart", "destroy the sandbox and confirm registry removal", ], @@ -404,7 +404,7 @@ test( await stateValidation.writeSandboxMarkers(instance, markers); await stateValidation.expectSandboxMarkers(instance, markers, "pre-restart-marker-read"); - progress.phase("restart the gateway and reconnect the sandbox"); + progress.phase("restart the gateway and recover the sandbox"); await captureSurvivalDiagnostics(host, "before-gateway-restart", [apiKey]); await lifecycle.restartGatewayRuntime({ delayMs: 5_000, @@ -415,6 +415,14 @@ test( attempts: 60, intervalMs: 5_000, }); + await captureSurvivalDiagnostics(host, "before-recover", [apiKey]); + const recovery = await host.nemoclaw([SANDBOX_NAME, "recover"], { + artifactName: "post-restart-nemoclaw-recover", + env: buildAvailabilityProbeEnv(), + timeoutMs: 240_000, + }); + await captureSurvivalDiagnostics(host, "after-recover", [apiKey]); + assertExitZero(recovery, `recover sandbox ${SANDBOX_NAME}`); progress.phase("recheck state and inference after restart"); await sandbox.expectListed(SANDBOX_NAME, {