feat(designer): Add HTTP status codes configuration to retry policy settings#8961
Conversation
🔒 AI Validation PendingThis PR is from an external contributor. AI validation will be performed after manual review by a maintainer. Maintainers: Add the |
There was a problem hiding this comment.
Pull request overview
Adds support for configuring a retry policy HTTP status-code allowlist in the Logic Apps designer settings UI and workflow model, including a new tag-picker control for multi-select input.
Changes:
- Extends RetryPolicy models/serialization to include
httpStatusCodes?: number[]. - Adds a reusable
SettingTagPickercontrol to@microsoft/designer-uiand wires it into both designer (v1) and designer-v2 networking settings. - Adds new localized strings for the new retry policy setting label/tooltip/placeholder.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| libs/logic-apps-shared/src/utils/src/lib/models/logicAppsV2.ts | Adds httpStatusCodes to the shared RetryPolicy model. |
| libs/designer/src/lib/ui/settings/settingsection.tsx | Supports rendering the new SettingTagPicker setting type. |
| libs/designer/src/lib/ui/settings/sections/networking.tsx | Adds “HTTP status codes” retry policy setting (tag picker) to Networking section. |
| libs/designer/src/lib/ui/settings/index.tsx | Persists selected HTTP status codes into node settings state. |
| libs/designer/src/lib/core/actions/bjsworkflow/settings.ts | Deserializes httpStatusCodes from workflow definition into settings. |
| libs/designer-v2/src/lib/ui/settings/settingsection.tsx | Supports rendering the new SettingTagPicker setting type. |
| libs/designer-v2/src/lib/ui/settings/sections/networking.tsx | Adds “HTTP status codes” retry policy setting (tag picker) to Networking section. |
| libs/designer-v2/src/lib/ui/settings/index.tsx | Persists selected HTTP status codes into node settings state. |
| libs/designer-v2/src/lib/core/actions/bjsworkflow/settings.ts | Deserializes httpStatusCodes from workflow definition into settings. |
| libs/designer-ui/src/lib/settings/settingsection/settingtagpicker.tsx | Introduces the new tag picker setting control. |
| libs/designer-ui/src/lib/settings/settingsection/index.tsx | Exports SettingTagPicker and related types. |
| libs/designer-ui/src/lib/settings/settingsection/tests/settingtagpicker.spec.tsx | Adds initial unit tests for SettingTagPicker. |
| libs/designer-ui/src/lib/settings/settingsection/tests/snapshots/settingtagpicker.spec.tsx.snap | Snapshot for SettingTagPicker initial render. |
| Localize/lang/strings.json | Adds localized strings for the new retry policy setting label/tooltip/placeholder. |
libs/designer-ui/src/lib/settings/settingsection/__tests__/settingtagpicker.spec.tsx
Show resolved
Hide resolved
🤖 AI PR Validation ReportPR Review ResultsThank you for your submission! Here's detailed feedback on your PR title and body compliance:✅ PR Title
|
| Section | Status | Recommendation |
|---|---|---|
| Title | ✅ | Keep current title (optional: include both designer/designer-v2 in scope) |
| Commit Type | Proper (feature) — no action needed |
|
| Risk Level | Change to Medium in PR body and update label to risk:medium (see reasoning) |
|
| What & Why | ✅ | Good — add one line about backward compatibility if possible |
| Impact of Change | ✅ | Good — add confirmation that old retry policies remain unaffected if applicable |
| Test Plan | ✅ | Unit tests exist — consider adding an integration/E2E test for serialized httpStatusCodes |
| Contributors | Optional: add contributors or leave blank with reminder to credit when applicable | |
| Screenshots/Videos | Optional: add screenshot(s) for UI reviewer convenience |
Final Message
This PR passes the Title and Body template checks. The main actionable item is to update the risk level to Medium (and the corresponding label) because serialization and runtime-relevant fields were changed across multiple modules. Please update the PR Risk Level section to select Medium and either update/remove the risk:low label or add an explanation for why risk:low is still accurate. Additionally, please consider:
- Adding a short note in What & Why confirming backward compatibility for existing retry policies that do not include httpStatusCodes.
- Optionally adding an integration/E2E test to assert that httpStatusCodes are serialized and deserialized as expected in runtime payloads, or documenting why E2E isn't necessary.
- Optionally adding a screenshot of the settings UI to make UI review faster.
Once you update the PR risk level and labels (or provide justification), re-request review. Thanks for the thorough PR — the implementation, tests, and localization updates look solid.
Last updated: Thu, 26 Mar 2026 21:25:14 GMT
Commit Type
Risk Level
What & Why
Adds support for configuring HTTP status codes that should trigger retries in the retry policy settings. This allows users to specify which HTTP error codes (4xx and 5xx) should cause the action to retry, providing more granular control over retry behavior.
Previously, retry policies only supported count, interval, minimum/maximum interval, and policy type. This change adds a new
httpStatusCodesparameter that lets users select specific HTTP status codes that trigger retries.Changes
libs/designer-ui/src/lib/settings/settingsection/settingtagpicker.tsx— Reusable tag picker component for multi-select dropdown with tag displaylibs/logic-apps-shared/src/utils/src/lib/models/logicAppsV2.ts— ExtendedRetryPolicytype withhttpStatusCodes?: number[]libs/designer/src/lib/ui/settings/sections/networking.tsx— Added HTTP status codes setting to retry policy sectionlibs/designer-v2/src/lib/ui/settings/sections/networking.tsx— Added HTTP status codes setting to retry policy section (v2)libs/designer/src/lib/ui/settings/settingsection.tsx— Added SettingTagPicker rendering caselibs/designer-v2/src/lib/ui/settings/settingsection.tsx— Added SettingTagPicker rendering case (v2)libs/designer/src/lib/ui/settings/index.tsx— Added handler for httpStatusCodes changeslibs/designer-v2/src/lib/ui/settings/index.tsx— Added handler for httpStatusCodes changes (v2)libs/designer/src/lib/core/actions/bjsworkflow/settings.ts— Added serialization for httpStatusCodeslibs/designer-v2/src/lib/core/actions/bjsworkflow/settings.ts— Added serialization for httpStatusCodes (v2)libs/designer-ui/src/lib/settings/settingsection/__tests__/settingtagpicker.spec.tsx— Unit tests for SettingTagPicker componentImpact of Change
SettingTagPickercomponent available for reuse in other multi-select scenarios. NewonRetryHttpStatusCodesChangehandler in settings interface.Test Plan
Contributors
Screenshots/Videos