
Announcements
PAD version: 2.41.170.24032 (flow initially created on 2.40)
Run mode: Attended
Citrix Workspace version: 23.11.1.140(2311.1) (version consistent during creation)
We have a flow that we've built using a Citrix application launched via the storefront that has worked in testing until recently. I suspect a recent update to the application --from 'SP2' to 'SP3' as shown in the screenshot below-- has caused a change, however I can't check the remote 'Citrix Virtual App' categories to confirm/update the remote session to use the updated 'SP3' remote session:
Any previously working UI elements added return the 'The remote destktop was not found' error.
Any readded elements are seen and work as expected.
This makes me believe that the issue is with the 'Citrix Virtual App' selector within the UI Elements section of PAD-- we need to have some way to update that as we do with other UI elements. It's currently inaccessible and requires quite literally all previously added UI elements to be readded in order for the session to be seen. I've included the error details given below -- the pane name given is not changeable currently and we need to be able to rule that out or update it to avoid readding hundreds of selectors.
The action requires a RDP client window but the window with selector ' > pane[Name="2024 R1 SP3 \\\\Remote"]' is not a valid RDP client window.: Microsoft.Flow.RPA.Desktop.Modules.SDK.Extended.Exceptions.InternalActionException: The remote desktop was not found. ---> Microsoft.Flow.RPA.Desktop.Modules.UIAutomation.Common.Exceptions.DesktopNotFoundException: The action requires a RDP client window but the window with selector ' > pane[Name="2024 R1 SP3 \\\\Remote"]' is not a valid RDP client window. ---> Microsoft.Flow.RPA.Desktop.UIAutomation.RDP.Common.Exceptions.RdpClientWindowNotFoundException: Exception of type 'Microsoft.Flow.RPA.Desktop.UIAutomation.RDP.Common.Exceptions.RdpClientWindowNotFoundException' was thrown.
at Microsoft.Flow.RPA.Desktop.UIAutomation.Runtime.Router.RDPAutomationRuntimeRouter.GetClient(String connectionString)
at Microsoft.Flow.RPA.Desktop.UIAutomation.Runtime.Router.RDPAutomationRuntimeRouter.GetClientAndRuntime(String serverAddress, IRDPClient& client, IAutomationRuntimeProxy& runtime)
--- End of inner exception stack trace ---
at Microsoft.Flow.RPA.Desktop.UIAutomation.Runtime.Router.RDPAutomationRuntimeRouter.GetClientAndRuntime(String serverAddress, IRDPClient& client, IAutomationRuntimeProxy& runtime)
at Microsoft.Flow.RPA.Desktop.UIAutomation.Runtime.Router.RDPAutomationRuntimeRouter.Invoke(MethodInfo targetMethod, Object[] args)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Reflection.DispatchProxyGenerator.Invoke(Object[] args)
at generatedProxy_1.PopulateTextFieldInWindow(UIRuntimeElement , String , PopulateTextModeEnum , MouseClickTypeEnum , Boolean )
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.Flow.RPA.Desktop.UIAutomation.Runtime.Router.UIAutomationRuntimeRouter.Invoke(MethodInfo targetMethod, Object[] args)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Reflection.DispatchProxyGenerator.Invoke(Object[] args)
at generatedProxy_2.PopulateTextFieldInWindow(UIRuntimeElement , String , PopulateTextModeEnum , MouseClickTypeEnum , Boolean )
--- End of remote exception stack trace ---
at Microsoft.Flow.RPA.Desktop.Modules.UIAutomation.Common.Proxy.RemoteAutomationRuntimeProxy.Invoke(MethodInfo targetMethod, Object[] args)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Reflection.DispatchProxyGenerator.Invoke(Object[] args)
at generatedProxy_3.PopulateTextFieldInWindow(UIRuntimeElement , String , PopulateTextModeEnum , MouseClickTypeEnum , Boolean )
at Microsoft.Flow.RPA.Desktop.Modules.UIAutomation.Actions.PopulateTextFieldInWindow.<Execute>b__21_0(IAutomationRuntimeProxy r, UIRuntimeElement e)
at Microsoft.Flow.RPA.Desktop.Modules.UIAutomation.Common.UIAutomationActionBase.PerformAutomation[T](Func`3 action, UIControl control, Boolean logAction)
at Microsoft.Flow.RPA.Desktop.Modules.UIAutomation.Actions.PopulateTextFieldInWindow.Execute(ActionContext context)
--- End of inner exception stack trace ---
at Microsoft.Flow.RPA.Desktop.Modules.UIAutomation.Actions.PopulateTextFieldInWindow.Execute(ActionContext context)
at Microsoft.Flow.RPA.Desktop.Robin.Engine.Execution.ActionRunner.Run(IActionStatement statement, Dictionary`2 inputArguments, Dictionary`2 outputArguments)
Cliff's notes on actions taken:
'Repair' actions within the selectors of parent UI windows or UI elements themselves don't result in the remote session being seen.
Renaming parent remote session to match name of previous session results in the same error.
Re-adding element from current session allows UI element to be seen.
Sometimes typing up an effort post will lead you to the issue. I was selecting the remote session itself when I should have been looking at the parent Window UI selector. While I renamed the window UI element, I failed to rename the parent window UI element appropriately. Ignore this post and my shame. 😄