From a86f3be2748dd66aad4367c3a71ed53fdc7c20e8 Mon Sep 17 00:00:00 2001 From: Chris Puckett <64617662+cpuck@users.noreply.github.com> Date: Tue, 13 Jan 2026 17:15:04 -0600 Subject: [PATCH 1/3] Revise TSG for Update Service memory issues Updated the troubleshooting guide for the Update Service to address issues related to high memory usage and service termination. Added mitigation steps and PowerShell scripts for validation and cleanup. --- ...te-Service-terminated-repeatedly-by-ALM.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/TSG/Update/Update-Service-terminated-repeatedly-by-ALM.md b/TSG/Update/Update-Service-terminated-repeatedly-by-ALM.md index 7d0d735..c4b67ca 100644 --- a/TSG/Update/Update-Service-terminated-repeatedly-by-ALM.md +++ b/TSG/Update/Update-Service-terminated-repeatedly-by-ALM.md @@ -97,6 +97,24 @@ if ($resourceIds.Count -gt 0) } ``` +## Remove failed Update action plan instances +Delete all failed Update action plans except for the last failed one. + +``` +Import-Module ECEClient -DisableNameChecking +$failedUpdates = Get-ActionPlanInstances | ? { $_.Status -eq "Failed" -and $_.ActionPlanName -match "MAS Update" } | sort LastModifiedDateTime -Descending | select -Skip 1 +$instanceIDs = $failedUpdates.InstanceID + +$eceClient = Create-ECEClusterServiceClient +$deleteActionPlanInstanceDescription = New-Object Microsoft.AzureStack.Solution.Deploy.EnterpriseCloudEngine.Controllers.Models.DeleteActionPlanInstanceDescription + +foreach ($actionPlanInstanceId in $instanceIDs) { +   # remove old instance +   $deleteActionPlanInstanceDescription.ActionPlanInstanceID = $actionPlanInstanceID +   $eceClient.DeleteActionPlanInstance($deleteActionPlanInstanceDescription).Wait() +} +``` + ## (Last Resort) Increase update service memory limit If the problem is still occurring, the final thing to do is to temporarily increase the configured memory limit for the update service. @@ -162,3 +180,4 @@ else Write-Host "No changes needed. Existing limits are already set. Warning limit $($memoryWarningLimit)MB and Error limit $($memoryErrorLimit)MB" } ``` + From 8709d55bf842538cc3bb1c0fb6d4a31e415b937f Mon Sep 17 00:00:00 2001 From: Chris Puckett <64617662+cpuck@users.noreply.github.com> Date: Mon, 2 Feb 2026 14:54:03 -0600 Subject: [PATCH 2/3] Update TSG/Update/Update-Service-terminated-repeatedly-by-ALM.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- ...te-Service-terminated-repeatedly-by-ALM.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/TSG/Update/Update-Service-terminated-repeatedly-by-ALM.md b/TSG/Update/Update-Service-terminated-repeatedly-by-ALM.md index c4b67ca..881f46a 100644 --- a/TSG/Update/Update-Service-terminated-repeatedly-by-ALM.md +++ b/TSG/Update/Update-Service-terminated-repeatedly-by-ALM.md @@ -101,17 +101,17 @@ if ($resourceIds.Count -gt 0) Delete all failed Update action plans except for the last failed one. ``` -Import-Module ECEClient -DisableNameChecking -$failedUpdates = Get-ActionPlanInstances | ? { $_.Status -eq "Failed" -and $_.ActionPlanName -match "MAS Update" } | sort LastModifiedDateTime -Descending | select -Skip 1 +Import-Module ECEClient -DisableNameChecking +$failedUpdates = Get-ActionPlanInstances | ? { $_.Status -eq "Failed" -and $_.ActionPlanName -match "MAS Update" } | sort LastModifiedDateTime -Descending | select -Skip 1 $instanceIDs = $failedUpdates.InstanceID - -$eceClient = Create-ECEClusterServiceClient -$deleteActionPlanInstanceDescription = New-Object Microsoft.AzureStack.Solution.Deploy.EnterpriseCloudEngine.Controllers.Models.DeleteActionPlanInstanceDescription - -foreach ($actionPlanInstanceId in $instanceIDs) { -   # remove old instance -   $deleteActionPlanInstanceDescription.ActionPlanInstanceID = $actionPlanInstanceID -   $eceClient.DeleteActionPlanInstance($deleteActionPlanInstanceDescription).Wait() + +$eceClient = Create-ECEClusterServiceClient +$deleteActionPlanInstanceDescription = New-Object Microsoft.AzureStack.Solution.Deploy.EnterpriseCloudEngine.Controllers.Models.DeleteActionPlanInstanceDescription + +foreach ($actionPlanInstanceId in $instanceIDs) { + # remove old instance + $deleteActionPlanInstanceDescription.ActionPlanInstanceID = $actionPlanInstanceID + $eceClient.DeleteActionPlanInstance($deleteActionPlanInstanceDescription).Wait() } ``` From 59d52956cc8a71d198abad14091235f65670a21b Mon Sep 17 00:00:00 2001 From: Chris Puckett <64617662+cpuck@users.noreply.github.com> Date: Mon, 2 Feb 2026 15:17:31 -0600 Subject: [PATCH 3/3] Update TSG for service termination due to memory issues Fixed "ID" case in line 111 instead of line 113. --- TSG/Update/Update-Service-terminated-repeatedly-by-ALM.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TSG/Update/Update-Service-terminated-repeatedly-by-ALM.md b/TSG/Update/Update-Service-terminated-repeatedly-by-ALM.md index 881f46a..21bff22 100644 --- a/TSG/Update/Update-Service-terminated-repeatedly-by-ALM.md +++ b/TSG/Update/Update-Service-terminated-repeatedly-by-ALM.md @@ -108,7 +108,7 @@ $instanceIDs = $failedUpdates.InstanceID $eceClient = Create-ECEClusterServiceClient $deleteActionPlanInstanceDescription = New-Object Microsoft.AzureStack.Solution.Deploy.EnterpriseCloudEngine.Controllers.Models.DeleteActionPlanInstanceDescription -foreach ($actionPlanInstanceId in $instanceIDs) { +foreach ($actionPlanInstanceID in $instanceIDs) { # remove old instance $deleteActionPlanInstanceDescription.ActionPlanInstanceID = $actionPlanInstanceID $eceClient.DeleteActionPlanInstance($deleteActionPlanInstanceDescription).Wait() @@ -181,3 +181,4 @@ else } ``` +