{"record":{"id":"51ae4a621df7a44d","repo":"deepseek-ai/deepseek-harness","slug":"the-user-chose-to-keep-planning-their-feedback","errorCode":null,"errorMessage":"The user chose to keep planning; their feedback: ${feedback}","messagePattern":"The user chose to keep planning; their feedback: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/plan/plan-mode/src/index.ts","lineNumber":409,"sourceCode":"          // generic channel message names ask_user_question, which the model\n          // never called. An abort (turn cancel, provider teardown) keeps its\n          // own message — there is no user to wait for.\n          if (cause instanceof UserQuestionError && cause.code === 'ASK_CANCELLED') {\n            throw new Error('The user dismissed the plan review to speak instead; '\n              + 'stay in plan mode, stop here, and wait for their message.')\n          }\n          throw cause\n        })\n        // A review may outlive this plugin fiber. Without its pre-step listener,\n        // an approved selection could never be appended, so fail and keep planning.\n        if (disposed) {\n          throw new Error('the plan-mode service was reloaded while the plan was under review; present the plan again')\n        }\n        const reviewItems = answer.answers.filter(entry => entry.id === REVIEW_ID)\n        const item = reviewItems.length === 1 ? reviewItems[0] : undefined\n        if (item?.selected.length !== 1 || item.selected[0] !== APPROVE_LABEL || item.custom !== undefined) {\n          const feedback = item?.custom ?? ''\n          throw new Error(feedback === ''\n            ? 'The user chose to keep planning; revise the plan and present it again.'\n            : `The user chose to keep planning; their feedback: ${feedback}`)\n        }\n        // Keep plan guidance for the rest of this assistant tool batch. The\n        // silent selection is appended at the next accepted in-turn pre-step,\n        // before its request assembly.\n        this.pendingIntents.set(agent.session, { active: false, narrate: false })\n        return { approved: true }\n      },\n      presentCall: args => ({\n        card: 'generic',\n        title: firstHeading(args.plan) ?? 'Plan',\n        kind: 'other',\n        content: [{ type: 'text', text: args.plan }],\n      }),\n      presentResult: (_args, result) => ({\n        card: 'generic',\n        title: 'Plan review',","sourceCodeStart":391,"sourceCodeEnd":427,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/plan/plan-mode/src/index.ts#L391-L427","documentation":"Error \"The user chose to keep planning; their feedback: ${feedback}\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/plan/plan-mode/src/index.ts:409 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Revise the plan according to the user's feedback and present it again."],"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"}