{"record":{"id":"553a5eeedffc0b4e","repo":"paperclipai/paperclip","slug":"ssh-fixture-process-is-still-running","errorCode":null,"errorMessage":"SSH fixture process is still running.","messagePattern":"SSH fixture process is still running\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/adapter-utils/src/ssh.ts","lineNumber":1727,"sourceCode":"): Promise<SshEnvLabFixtureState | null> {\n  try {\n    const raw = JSON.parse(await fs.readFile(statePath, \"utf8\")) as SshEnvLabFixtureState;\n    if (!raw || raw.kind !== \"ssh_openbsd\") return null;\n    return raw;\n  } catch {\n    return null;\n  }\n}\n\nexport async function stopSshEnvLabFixture(statePath: string): Promise<boolean> {\n  const state = await readSshEnvLabFixtureState(statePath);\n  if (!state) return false;\n\n  if (await isSshEnvLabFixtureProcess(state)) {\n    process.kill(state.pid, \"SIGTERM\");\n    await waitForCondition(async () => {\n      if (await isSshEnvLabFixtureProcess(state)) {\n        throw new Error(\"SSH fixture process is still running.\");\n      }\n    }, { timeoutMs: 5_000, intervalMs: 100 });\n  }\n\n  await fs.rm(state.rootDir, { recursive: true, force: true }).catch(() => undefined);\n  return true;\n}\n\nexport async function startSshEnvLabFixture(input: {\n  statePath: string;\n  bindHost?: string;\n  host?: string;\n}): Promise<SshEnvLabFixtureState> {\n  const existing = await readSshEnvLabFixtureState(input.statePath);\n  if (existing && await isSshEnvLabFixtureProcess(existing)) {\n    return existing;\n  }\n  if (existing) {","sourceCodeStart":1709,"sourceCodeEnd":1745,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/packages/adapter-utils/src/ssh.ts#L1709-L1745","documentation":"Error \"SSH fixture process is still running.\" thrown in paperclipai/paperclip.","triggerScenarios":"Thrown at packages/adapter-utils/src/ssh.ts:1727 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Stop the SSH fixture process before tearing it down."],"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"}