deepseek-ai/deepseek-harness · error · UserQuestionError
DELEGATED_CALLER
DELEGATED_CALLER
Error message
human interaction is unavailable while the calling agent is owned by another live agent; include the unresolved question or decision in the child agent's final result
What it means
Error "human interaction is unavailable while the calling agent is owned by another live agent; include the unresolved question or decision in the child agent's final result" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/interaction/user-questions/src/index.ts:108
* when that live agent is owned by another agent.
*/
async ask(request: AskUserQuestionRequest): Promise<AskUserQuestionAnswer> {
if (request.signal?.aborted) {
throw new UserQuestionError('ask_user_question was aborted before the user answered', 'ASK_ABORTED')
}
if (request.questions.length === 0) {
throw new UserQuestionError('ask_user_question requires at least one question', 'EMPTY_QUESTIONS')
}
const agent = request.agent
if (agent !== undefined) {
const agents = this.ctx.get('agents')
if (agents === undefined || agents.get(agent.id) !== agent) {
throw new UserQuestionError(
'human interaction requires the exact live calling agent when an agent is supplied',
'CALLER_NOT_LIVE')
}
if (!agents.roots().includes(agent)) {
throw new UserQuestionError(
'human interaction is unavailable while the calling agent is owned by another live agent; '
+ "include the unresolved question or decision in the child agent's final result",
'DELEGATED_CALLER')
}
}
// A presentation intent asserts two things the types cannot: that the
// named approve label is one of this question's own options, and that a
// plan-review carries the plan it is a review of. A UI honouring the
// intent answers with that label, and shows that detail as the plan, so
// either gap would put a choice the asker never offered — or an approval of
// something invisible — in front of the user. Caught at the asker, where
// the mistake is, rather than in each UI.
for (const question of request.questions) {
const intent = question.intent
if (intent === undefined) continue
if (!(question.options ?? []).some(option => option.label === intent.approve)) {
throw new UserQuestionError(
`question ${question.id} declares intent ${intent.kind} whose approve label `View on GitHub (pinned to b150a551b8)
Solutions
- Do not ask the user from an owned child agent; include the unresolved question or decision in the child agent's final result.
When it happens
Trigger: Thrown at packages/interaction/user-questions/src/index.ts:108 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/04a79e9e942e723b.
Report an issue: GitHub.