deepseek-ai/deepseek-harness · error

${this.backend.name}: background write for session "${sessio

Error message

${this.backend.name}: background write for session "${session.id}" failed (buffered events retained): ${String(error)}

What it means

Error "${this.backend.name}: background write for session "${session.id}" failed (buffered events retained): ${String(error)}" thrown in deepseek-ai/deepseek-harness.

Source

Thrown at packages/session/session-persistence/src/coordinator.ts:1349

    } catch (error: unknown) {
      // Admission is closed during retirement/teardown, but an ordinary flush
      // may have raced one last enqueue while initialization was pending.
      live.writes.cancelAutomaticWait()
      throw error
    }
    await live.writes.flush()
  }

  /** Build one package-private write controller around initialization and id serialization. */
  private createWriteBehind(session: Session, ready: () => Promise<void>): SessionWriteBehind {
    return new SessionWriteBehind({
      maxDelayMs: this.writeBatchMaxDelayMs,
      write: async (batch) => {
        await ready()
        await this.serialize(session.header.id, () => this.appendLiveBatch(session.header.id, batch))
      },
      reportBackgroundFailure: (error) => {
        this.ctx.logger.warn(`${this.backend.name}: background write for session "${session.id}" failed (buffered events retained): ${String(error)}`)
      },
    })
  }

  /** Append one controller-owned prefix after filtering events initialization already stored. */
  private async appendLiveBatch(id: SessionId, batch: readonly SessionEvent[]): Promise<void> {
    const state = this.states.get(id)
    /* v8 ignore next -- state is always set by the awaited initialization */
    const cursor = state?.cursor ?? 0
    const fresh = batch.filter(e => e.seq >= cursor)
    await this.appendCore(id, fresh)
  }
}

View on GitHub (pinned to b150a551b8)

Solutions

  1. Check the named backend's write path (disk, permissions); buffered events are retained and will flush once writes succeed.

When it happens

Trigger: Thrown at packages/session/session-persistence/src/coordinator.ts:1349 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of deepseek-ai/deepseek-harness@b150a551b8 (2026-08-24). Data as JSON: /api/errors/cd2bafb088c870a8. Report an issue: GitHub.