{"record":{"id":"94fe328b53ed134d","repo":"deepseek-ai/deepseek-harness","slug":"schedule-durable-change-observer-failed-error","errorCode":null,"errorMessage":"schedule: durable-change observer failed: ${error instanceof Error ? error.message : String(error)}","messagePattern":"schedule: durable-change observer failed: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/schedule/schedule/src/tools.ts","lineNumber":312,"sourceCode":" * @param toolCtx - Exact agent-scoped context receiving the definitions.\n * @param agent - Exact live owner whose session the tools mutate.\n * @param onDurableChange - Called after every successful preflight and again after a create or actual delete barrier succeeds.\n * @returns Idempotent aggregate disposer for the three registrations.\n */\nexport function registerScheduleTools(\n  rootCtx: Context,\n  toolCtx: Context,\n  agent: Agent,\n  onDurableChange: () => void,\n): () => void {\n  const disposers: Array<() => void> = []\n\n  /** A projection observer cannot reverse a completed durability barrier. */\n  const notifyDurableChange = (): void => {\n    try {\n      onDurableChange()\n    } catch (error: unknown) {\n      rootCtx.logger.warn(`schedule: durable-change observer failed: ${error instanceof Error ? error.message : String(error)}`)\n    }\n  }\n\n  try {\n    disposers.push(toolCtx.tools.register(defineTool({\n      name: 'schedule_create',\n      description: CREATE_DESCRIPTION,\n      parameters: {\n        prompt: {\n          type: 'string',\n          required: true,\n          description: 'Reminder content to present when the target becomes due.',\n        },\n        after_seconds: {\n          type: 'number',\n          description: 'Positive safe-integer delay in seconds.',\n        },\n        every_seconds: {","sourceCodeStart":294,"sourceCodeEnd":330,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/schedule/schedule/src/tools.ts#L294-L330","documentation":"Error \"schedule: durable-change observer failed: ${error instanceof Error ? error.message : String(error)}\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/schedule/schedule/src/tools.ts:312 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix the failing durable-change observer (listener exception); its error is logged and observation continues."],"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"}