{"record":{"id":"30801fac410ac8c3","repo":"deepseek-ai/deepseek-harness","slug":"duplicate-name","errorCode":"DUPLICATE_NAME","errorMessage":"PTY session name \"${name}\" already exists for this owner","messagePattern":"PTY session name \"(.+?)\" already exists for this owner","errorType":"exception","errorClass":"TerminalError","httpStatus":null,"severity":"error","filePath":"packages/terminal/terminal/src/index.ts","lineNumber":338,"sourceCode":"  }\n\n  private ensureOwnerCleanup(owner: Agent): void {\n    if (!this.isLiveOwner(owner)) {\n      throw new TerminalError(`agent \"${owner.id}\" is not the registered PTY owner`, 'OWNER_NOT_LIVE')\n    }\n    if (this.ownerCleanups.has(owner)) return\n    const detach = owner.ctx.effect(() => async () => {\n      this.disposedOwners.add(owner)\n      this.ownerCleanups.delete(owner)\n      await this.disposeOwned(owner)\n    }, 'pty.ownerCleanup()')\n    this.ownerCleanups.set(owner, detach)\n  }\n\n  private reserveName(owner: Agent, name: string | undefined): () => void {\n    if (name === undefined) return () => {}\n    if ([...this.sessions.values()].some(record => record.owner === owner && record.name === name)) {\n      throw new TerminalError(`PTY session name \"${name}\" already exists for this owner`, 'DUPLICATE_NAME')\n    }\n    const reserved = this.reservedNames.get(owner) ?? new Set<string>()\n    if (reserved.has(name)) throw new TerminalError(`PTY session name \"${name}\" is already being created`, 'DUPLICATE_NAME')\n    reserved.add(name)\n    this.reservedNames.set(owner, reserved)\n    return () => {\n      reserved.delete(name)\n      if (reserved.size === 0) this.reservedNames.delete(owner)\n    }\n  }\n\n  private reserveSpawn(owner: Agent): SpawnReservation {\n    const controller = new AbortController()\n    const settlement = Promise.withResolvers<void>()\n    const pending: PendingSpawn = { owner, controller, settled: settlement.promise, cleanupFailure: undefined }\n    const owned = this.pendingSpawns.get(owner) ?? new Set<PendingSpawn>()\n    owned.add(pending)\n    this.pendingSpawns.set(owner, owned)","sourceCodeStart":320,"sourceCodeEnd":356,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/terminal/terminal/src/index.ts#L320-L356","documentation":"Error \"PTY session name \"${name}\" already exists for this owner\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/terminal/terminal/src/index.ts:338 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pick a unique session name for this owner, or close the existing session with that name first."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b150a551b8d465e31e418e1b2eaf5e79bbb7d28e","analyzedAt":"2026-08-24T18:12:29.105Z","schemaVersion":2},"datasetVersion":"2026-08-24T22:17:12.610Z"}