{"record":{"id":"8f47459ab7169cc9","repo":"paperclipai/paperclip","slug":"ssh-env-lab-fixture-exited-before-becoming-ready","errorCode":null,"errorMessage":"SSH env-lab fixture exited before becoming ready.","messagePattern":"SSH env-lab fixture exited before becoming ready\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/adapter-utils/src/ssh.ts","lineNumber":1853,"sourceCode":"    clientPrivateKeyPath,\n    clientPublicKeyPath,\n    hostPrivateKeyPath,\n    hostPublicKeyPath,\n    authorizedKeysPath,\n    knownHostsPath,\n    sshdConfigPath,\n    sshdLogPath,\n  };\n\n  if (!state.pid) {\n    throw new Error(\"Failed to start SSH env-lab fixture.\");\n  }\n\n  try {\n    await waitForCondition(async () => {\n      if (!(await isPidRunning(state.pid))) {\n        const logOutput = await fs.readFile(sshdLogPath, \"utf8\").catch(() => \"\");\n        throw new Error(logOutput || \"SSH env-lab fixture exited before becoming ready.\");\n      }\n      const config = await buildSshEnvLabFixtureConfig(state);\n      await ensureSshWorkspaceReady(config);\n    }, { timeoutMs: 10_000, intervalMs: 250 });\n    await fs.writeFile(input.statePath, JSON.stringify(state, null, 2), { mode: 0o600 });\n    return state;\n  } catch (error) {\n    if (await isPidRunning(state.pid)) {\n      process.kill(state.pid, \"SIGTERM\");\n    }\n    await fs.rm(rootDir, { recursive: true, force: true }).catch(() => undefined);\n    throw error;\n  }\n}\n\nexport async function buildSshEnvLabFixtureConfig(\n  state: SshEnvLabFixtureState,\n): Promise<SshConnectionConfig> {","sourceCodeStart":1835,"sourceCodeEnd":1871,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/packages/adapter-utils/src/ssh.ts#L1835-L1871","documentation":"Error \"SSH env-lab fixture exited before becoming ready.\" thrown in paperclipai/paperclip.","triggerScenarios":"Thrown at packages/adapter-utils/src/ssh.ts:1853 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect fixture logs to find why sshd exited, fix, and retry."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"120ae5428fa29bee300bcf806491cd4d965fbb7c","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}