diff --git a/packages/a2a-server/src/agent/task.ts b/packages/a2a-server/src/agent/task.ts index e37965af6a..5322f9edf0 100644 --- a/packages/a2a-server/src/agent/task.ts +++ b/packages/a2a-server/src/agent/task.ts @@ -791,7 +791,14 @@ export class Task { } as ToolConfirmationPayload) : undefined; this.skipFinalTrueAfterInlineEdit = !!payload; - await confirmationDetails.onConfirm(confirmationOutcome, payload); + try { + await confirmationDetails.onConfirm(confirmationOutcome, payload); + } finally { + // Once confirmationDetails.onConfirm finishes (or fails) with a payload, + // reset skipFinalTrueAfterInlineEdit so that external callers receive + // their call has been completed. + this.skipFinalTrueAfterInlineEdit = false; + } } else { await confirmationDetails.onConfirm(confirmationOutcome); }