From fb1088b9561ce74efca21aaa73f5ec33cdcf38d6 Mon Sep 17 00:00:00 2001 From: Krrish Mittal Date: Mon, 17 Aug 2026 08:07:34 -0700 Subject: [PATCH] fix(designer): clarify retry policy HTTP status codes UX (#9538) The retry-policy "HTTP status codes" picker did not explain how a custom list interacts with the default retryable set (408, 429, 5xx), and could not offer status codes outside its curated list. - Reword the tooltip to state that selecting codes replaces the default retryable set (only the selected codes are retried) and that leaving it empty keeps the defaults. This resolves the "instead of vs in addition to" ambiguity reported in #9538. - Add 499 (Client Closed Request) to the selectable options, a code users commonly want retried (e.g. stateless workflow timeout). The picker only accepts values from its predefined list, so this was previously unselectable. - Remove the dead `freeform` prop from SettingTagPicker: the control never committed typed-but-unmatched values, so `freeform` was misleading. - Keep 408/429/5xx in the list on purpose: under replace semantics users must be able to re-add them alongside custom codes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- Localize/lang/strings.json | 4 ++-- .../__tests__/__snapshots__/settingtagpicker.spec.tsx.snap | 1 - .../designer-ui/src/lib/settings/settingsection/constants.ts | 5 +++++ .../src/lib/settings/settingsection/settingtagpicker.tsx | 1 - libs/designer-v2/src/lib/ui/settings/sections/networking.tsx | 5 +++-- libs/designer/src/lib/ui/settings/sections/networking.tsx | 5 +++-- 6 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Localize/lang/strings.json b/Localize/lang/strings.json index 5b1175f1782..92fae8d9d62 100644 --- a/Localize/lang/strings.json +++ b/Localize/lang/strings.json @@ -626,7 +626,6 @@ "9bCLPz": "Loading API Management APIs...", "9bQctz": "Validation failed for workflows:", "9djnqI": "Returns the result from adding the two numbers", - "9emgHc": "Specify which HTTP status codes should trigger a retry. Select one or more status codes.", "9euy52": "Complete", "9gb/xS": "Create", "9hKeBq": "Select an Azure OpenAI resource", @@ -695,6 +694,7 @@ "BCAnZP": "Either a single format specifier character or a custom format pattern that indicates how to format the value of this timestamp. If format is not provided, the ISO 8601 format ('o') is used.", "BCgiRh": "Warning: custom value does not match one of the allowed types for this input", "BFBJi2": "No errors found in your map.", + "BGOMQF": "Specify which HTTP status codes trigger a retry. Selecting codes here replaces the default retryable set (408, 429, and 5xx), so only the codes you select are retried. Leave empty to keep the default set.", "BGw6eH": "Missing required properties ''{missingProperties}'' for authentication type ''{authType}''", "BHXsCs": "Authentication", "BHe7qY": "Required. The URI encoded string.", @@ -2583,7 +2583,6 @@ "_9bCLPz.comment": "Loading API Management APIs...", "_9bQctz.comment": "The error title for the workflows tab", "_9djnqI.comment": "Label for description of custom add Function", - "_9emgHc.comment": "tooltip for retry policy HTTP status codes setting", "_9euy52.comment": "Text to indicate that the artifact upload is completed", "_9gb/xS.comment": "Button text for creating a group", "_9hKeBq.comment": "Select the Azure Cognitive Service Open AI resource to use for this connection", @@ -2652,6 +2651,7 @@ "_BCAnZP.comment": "Optional string parameter to identify format of timestamp returned", "_BCgiRh.comment": "Warning message for when custom value does not match one of the function node input's allowed types", "_BFBJi2.comment": "Message displayed when there are no errors", + "_BGOMQF.comment": "tooltip for retry policy HTTP status codes setting", "_BGw6eH.comment": "Error message when missing multiple required authentication properties", "_BHXsCs.comment": "Label for authentication", "_BHe7qY.comment": "Required URI encoded string parameter to be converted using uriComponentToString function", diff --git a/libs/designer-ui/src/lib/settings/settingsection/__tests__/__snapshots__/settingtagpicker.spec.tsx.snap b/libs/designer-ui/src/lib/settings/settingsection/__tests__/__snapshots__/settingtagpicker.spec.tsx.snap index f9940ceabf3..23da7df5be7 100644 --- a/libs/designer-ui/src/lib/settings/settingsection/__tests__/__snapshots__/settingtagpicker.spec.tsx.snap +++ b/libs/designer-ui/src/lib/settings/settingsection/__tests__/__snapshots__/settingtagpicker.spec.tsx.snap @@ -6,7 +6,6 @@ exports[`ui/settings/settingtagpicker > should construct with basic props 1`] = > setInputValue((e.target as HTMLInputElement).value)} onOptionSelect={handleOptionSelect} positioning="below" - freeform > {filteredOptions.map((option) => (