{"record":{"id":"b424b3142deed034","repo":"deepseek-ai/deepseek-harness","slug":"subagent-activation-childid-settlement-notice","errorCode":null,"errorMessage":"subagent \"${activation.childId}\" settlement notice was not delivered to its parent: ${errorChain(error)}","messagePattern":"subagent \"(.+?)\" settlement notice was not delivered to its parent: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/subagent/subagent/src/continuation.ts","lineNumber":1506,"sourceCode":"      // reading its inbox and records the account in the log either way; it\n      // does NOT survive that parent's own disposal, whose `keepInbox: false`\n      // cancel durably clears whatever it never claimed.\n      if (this.closingTeardownFor(parent) !== undefined) {\n        parent.inject(message)\n        return\n      }\n      // An idle parent has nothing else to look at, so it gets one ordinary\n      // turn. A busy parent is steered instead of woken: `Inbox.claim()` takes\n      // the whole next-step batch at one boundary, so several children settling\n      // together cost one step rather than one turn each. Steering rather than\n      // injecting closes the window where a driver retires between this status\n      // read and the send, which would strand the notice unclaimed.\n      this.sendWaking(parent, message, () => {\n        if (parent.status === 'idle') parent.followup(message)\n        else parent.steer(message)\n      })\n    } catch (error: unknown) {\n      this.ctx.logger.warn(\n        `subagent \"${activation.childId}\" settlement notice was not delivered to its parent: `\n        + errorChain(error),\n      )\n    }\n  }\n\n  /**\n   * Request a best-effort final session flush after the child is quiescent.\n   * Listener failure is logged because flush participation cannot identify a\n   * particular persistence backend, and teardown must still release ownership.\n   * @param activation - the Activation whose final events should be flushed.\n   */\n  private async flushFinalState(activation: Activation): Promise<void> {\n    const child = activation.handle.agent\n    try {\n      await child.ctx.sessions.flush(child.session)\n    } catch (error: unknown) {\n      this.ctx.logger.warn(","sourceCodeStart":1488,"sourceCodeEnd":1524,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/subagent/subagent/src/continuation.ts#L1488-L1524","documentation":"Error \"subagent \"${activation.childId}\" settlement notice was not delivered to its parent: ${errorChain(error)}\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/subagent/subagent/src/continuation.ts:1506 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check that the parent session is still alive and subscribed; retry the settlement or restart the parent listener."],"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"}