{"record":{"id":"91cd5c089b8326cb","repo":"deepseek-ai/deepseek-harness","slug":"session-session-id-fallback-title-update-fai","errorCode":null,"errorMessage":"session \"${session.id}\": fallback title update failed: ${String(error)}","messagePattern":"session \"(.+?)\": fallback title update failed: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/session/session-title/src/index.ts","lineNumber":484,"sourceCode":"    // A user rename pins the title: no automatic revision may override it.\n    if (this.get(session)?.source.kind === 'user') return\n    const registration = this.registration\n    if (registration !== undefined && !registration.closing) {\n      const messages = collectSessionTitleMessages(session.events, event.seq)\n      const shouldSchedule = registration.provider.automatic === 'all-prompts'\n        || (session.header.parentSession === undefined && messages.length === 1 && this.get(session) === undefined)\n      if (shouldSchedule) {\n        const state = this.stateFor(session)\n        const revision = this.supersede(state, 'newer user message superseded title generation')\n        state.pending = { registration, revision, throughSeq: event.seq }\n      }\n    }\n    this.defer(async () => {\n      try {\n        await this.ensureFallback(session)\n      } catch (error: unknown) {\n        if (!this.serviceActive()) return\n        this.ctx.logger.warn(`session \"${session.id}\": fallback title update failed: ${String(error)}`)\n      }\n    })\n  }\n\n  /** Start pending automatic work only after its exact main-request route is logged. */\n  private onRequestHeader(session: Session, event: Extract<SessionEvent, { type: 'request/header' }>): void {\n    if (!this.serviceActive()) return\n    const state = this.work.get(session)\n    const pending = state?.pending\n    if (state === undefined || pending === undefined || pending.throughSeq >= event.seq) return\n    const route = {\n      provider: event.data.header.config.provider,\n      model: event.data.header.config.model,\n    }\n    this.startPending(session, state, pending, route)\n  }\n\n  /** Start unchanged-route work from the marked loop request after its header fold is current. */","sourceCodeStart":466,"sourceCodeEnd":502,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/session/session-title/src/index.ts#L466-L502","documentation":"Error \"session \"${session.id}\": fallback title update failed: ${String(error)}\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/session/session-title/src/index.ts:484 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the embedded error from the fallback title update; fix the persistence write it names."],"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"}