+ {/* Pass / Fail / API failure */}
+
Pass → {ACTION_LABELS[step.on_pass] || step.on_pass}
- Fail → {ACTION_LABELS[step.on_fail] || step.on_fail}
+ On fail → {ACTION_LABELS[step.on_fail] || step.on_fail}
+
+
+ On API failure →{" "}
+ {step.on_error != null
+ ? ACTION_LABELS[step.on_error] || step.on_error
+ : `${ACTION_LABELS[step.on_fail] || step.on_fail} (same as on fail)`}
diff --git a/ui/litellm-dashboard/src/components/policies/types.ts b/ui/litellm-dashboard/src/components/policies/types.ts
index 002ae17af0a..887781ff943 100644
--- a/ui/litellm-dashboard/src/components/policies/types.ts
+++ b/ui/litellm-dashboard/src/components/policies/types.ts
@@ -24,6 +24,8 @@ export interface PipelineStep {
guardrail: string;
on_fail: "block" | "allow" | "next" | "modify_response";
on_pass: "allow" | "block" | "next" | "modify_response";
+ /** If unset, API/technical errors use on_fail (backward compatible). */
+ on_error?: "block" | "allow" | "next" | "modify_response" | null;
pass_data?: boolean;
modify_response_message?: string | null;
}