diff --git a/src/agents/pi-embedded-runner/run/payloads.ts b/src/agents/pi-embedded-runner/run/payloads.ts index a79fc592bf9..4f4c7ad2d54 100644 --- a/src/agents/pi-embedded-runner/run/payloads.ts +++ b/src/agents/pi-embedded-runner/run/payloads.ts @@ -61,6 +61,12 @@ function resolveToolErrorWarningPolicy(params: { verboseLevel?: VerboseLevel; }): ToolErrorWarningPolicy { const includeDetails = isVerboseToolDetailEnabled(params.verboseLevel); + // Check suppressToolErrors first so it takes precedence over all other rules. + // When true, no tool-error warnings are shown to the user — the agent handles + // failures internally and decides what to communicate. + if (params.suppressToolErrors) { + return { showWarning: false, includeDetails }; + } if (params.suppressToolErrorWarnings) { return { showWarning: false, includeDetails }; } @@ -79,9 +85,6 @@ function resolveToolErrorWarningPolicy(params: { if (isMutatingToolError) { return { showWarning: true, includeDetails }; } - if (params.suppressToolErrors) { - return { showWarning: false, includeDetails }; - } return { showWarning: !params.hasUserFacingReply && !isRecoverableToolError(params.lastToolError.error), includeDetails,