fix(designer): Fix infinite recursive nesting in monitoring run history values [hotfix]#9125
Closed
takyyon wants to merge 1 commit into
Closed
fix(designer): Fix infinite recursive nesting in monitoring run history values [hotfix]#9125takyyon wants to merge 1 commit into
takyyon wants to merge 1 commit into
Conversation
…ry values The code_interpreter built-in tool support (3e71bcd, PR #8875) introduced a shortcut that returned already-bound BoundParameters as raw inputs when runMetaData.inputs existed. Combined with a refetch() triggered on every runMetaData change, this created an infinite loop: 1. Raw inputs fetched → bound to {displayName, value} → stored on runData 2. runData change → refetch → shortcut returns already-bound data as 'raw' 3. Re-binding wraps {displayName, value} inside another {displayName, value} 4. Repeat infinitely → values scroll endlessly in the action boxes Fix: - Always call getActionLinks() for fresh raw data (never short-circuit) - Null-safe getActionLinks return value via ?? {} fallback - Use stable query key (actionTrackingId, startTime, endTime) so React Query caches properly and doesn't refetch when bound data changes - Remove refetch() on runMetaData change that drove the infinite loop - Use placeholderData instead of initialData to prevent premature dispatch - Add enabled guard to prevent query when runMetaData is null Affects both Consumption and Standard SKUs across all run history views. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Elaina-Lee
approved these changes
Apr 29, 2026
Contributor
🤖 AI PR Validation ReportPR Review ResultsThank you for your submission! Here's detailed feedback on your PR title and body compliance:✅ PR Title
✅ Commit Type
|
| Section | Status | Recommendation |
|---|---|---|
| Title | ✅ | Consider removing duplicate verb (optional) |
| Commit Type | ✅ | None |
| Risk Level | Add the repo risk label risk:medium to match the PR body |
|
| What & Why | ✅ | None |
| Impact of Change | ✅ | None |
| Test Plan | ✅ | Provide CI/test run link if available |
| Contributors | Fix minor formatting and optionally list more contributors | |
| Screenshots/Videos | ✅ | None |
Final notes:
- Advised risk level based on the code diff: Medium — this matches the risk level chosen in your PR body. No escalation required.
- Required action before final merge: Add the repository risk label that corresponds to Medium (commonly
risk:medium) to the PR. The PR body already selects Medium, but the missing label must be present on the PR itself so automation and reviewers see it. - Optional suggestions:
- Slightly reword the PR title to avoid repeating the word "Fix" (cosmetic).
- Fix the small formatting issue between Contributors and the Screenshots header (add a blank line) so the section renders cleanly in GitHub.
- If available, include a link to CI results for the added unit tests to speed approval.
Please update the PR to add the risk:medium label and consider the minor title/formatting suggestions above. Thank you for the clear description, tests, and screenshots — this is in good shape for a hotfix release.
Last updated: Wed, 29 Apr 2026 18:02:14 GMT
Contributor
📊 Coverage Check🎉 All changed files have adequate test coverage! |
Contributor
Author
|
Closing — recreating with clean commit (removed accidental .gitignore change). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Commit Type
Risk Level
Cherry-pick of #9123 onto
hotfix/v5.294for immediate release.What & Why
Problem
Multiple customers (including US Government tenants) reported that action input/output values in the workflow run history view scroll infinitely, making them unreadable. The values display as deeply nested recursive JSON with
{displayName, value}objects nested inside each other.This affects both Consumption and Standard SKUs, across new and historical runs. First reported April 27, 2026. The bug was introduced in v5.294 (not present in v5.273).
Root Cause
Regression introduced in PR #8875 (commit
3e71bcde8, March 4) which addedcode_interpreterbuilt-in tool support. The commit added a shortcut in the v1 designer'sMonitoringPanelthat returned already-boundBoundParametersas raw inputs, creating an infinite feedback loop withuseEffect(() => refetch(), [runMetaData]).Fix (3 changes)
getActionLinks()for fresh raw dataactionTrackingId,startTime,endTime(matching v2 pattern)useEffect(() => refetch(), [runMetaData])Impact of Change
MonitoringPanelnow matches v2.Test Plan
Test details:
monitoringTab.spec.tsx— 6 unit tests all passing on hotfix branchshould not re-feed already-bound BoundParameters as raw inputsverifies the exact bug is fixedContributors
Before (Bug) - Infinite recursive nesting
Values in the monitoring panel display as infinitely nested
{displayName, value}objects, continuously scrolling:After (Fix) - Clean value display
Values display correctly as flat, readable content: