Support

Get help with Devolutions PowerShell Universal.

avatar

simon

Multiselect Autocomplete shows Values instead of Name if more are selected

Hi, not sure if this a bug or i do something wrong. Im using the Autocomplete Component to select one or more users from a list. For the Name i build something out of Username and the Title / Position and the Value is the ObjectGuid for the script to use afterwards. If i now select one entry it works without a problem, but as soon as i add another different entry, the one before transforms into the Value instead of showing the Name. The code for the Autocomplete Component ist the following: The $ADUsers is a cached list of our AD Users. New-UDAutocomplete -Id "txtMailboxAccess" -Label "User" -Multiple -FullWidth -Icon (New-UDIcon -Icon "user" -Solid) -OnLoadOptions { $ADUsers | Where-Object {$_.userprincipalname -like "*$Body*" -or $_.samaccountname -like "*$Body*"} | ForEach-Object { New-UDAutoCompleteOption -Name "$($_.displayName) ($($_.title) | $($_.department))" -Value $_.ObjectGuid } | ConvertTo-Json } [image] Does anybody know how to solve this? Thank you!

16

1

avatar

DataTraveler

avatar

tools-sebi

Folder view in Scrips is empty

The folder view for scrips does not show folders. I can create sub-folders in the ui and they get correcly created on disk, but will not show up in the folder explorer. [image] I m on Version 2026.2.0 Not quite sure if I do something wrong, or there is an issue somewhere...

50

5

avatar

DataTraveler

avatar

mr_curby

Filter query made on API Management

Hello, I'm trying to work with the Management API on Powershell Universal 4.4.1. I'm trying to filter jobs run using the GET /api/v1/job endpoint. However, parameters does not seem to have any effect ( Take / Total / OrderDirection / Scheduled etc... ) on the filtering of the query. Goal would be to filter for instance x last jobs triggered via Scheduled. What is the proper way to use the parameters ?

17

0

avatar

tools-sebi

Issue accessing variables.

I created an unauthenticated API Endpoint "/getData" which uses variables and the $Secret scope to connect to other APIs and return aggregated data. Issue1: the endpoint could not read all secrets and threw a security exception despite none of them had any role restrictions. Recreating the secrets worked, so some update must have corrupted the permission requirements of the secrets. Not sure if this is worth looking into. Issue2: the endpoint needs to run an internal script via Invoke-PSUScript -Integrated -Script 'AuthorizeToAPI.ps1' -Wait that handles the authentication to that external API. That script is able to be run unauthenticated, but needs update variables/secrets. This is what I used: $AccessTokenVar = Get-PSUVariable -Name "AccessToken" $AccessTokenLifetimeVar = Get-PSUVariable -Name "AccessTokenLifetime" $TokenResponse = Invoke-RestMethod "<externalAPIauthentication>" -Method 'POST' -Headers $Headers -Body $Body Set-PSUVariable -Variable $AccessTokenVar -Value $TokenResponse.Token Set-PSUVariable -Variable $AccessTokenLifetimeVar -Value $TokenResponse.LifeTime which worked fine until the last update and suddenly returns an error: Permission denied. The role specified does not have access to this resource. Since Issue1 clearly pointed to some update corrupting role requirements to variables, I m at a loss on what is intended behavior and what is not. Are integrated scripts not able to use Get/Set-PSUVariable or did more permissions get corrupted? Help would be much appreciated :)

9

0

avatar

bcaydelotte

Send-MailMessage

While I understand that Microsoft no longer supports Send-MailMessage (but doesn't have a replacement, yet)....I can do the following from PowerShell (on the server hosting PSU), but not within PSU itelself when I try to use Send-MailMessage and embedding an image in an e-mail. $Attachment = New-Object System.Net.Mail.Attachment -FilePath [image] however, within PSU - when I hit that point in the Web App - I get a "could not find System.Net.Mail.Attachment". [image] My understanding is that this isn't a module that I need to import, however I can't seem to get the app to load it.

96

6

avatar

DataTraveler

avatar

davp

PowerShell Universal on Azure Web App

Having read some good review i thought I'd try this in Azure I followed the video on YouTube and also found instructions on ironmansoftware but I'm on the point of giving up Using the docker image ironmansoftware/universal 2026.2.0-azure The web app just times out on start-up. Set the WEBSITES_CONTAINER_START_TIME_LIMIT to 1800 Error logs don't really say much useful. Can't find anything about problems running it in Azure webapp Don't know what else to do. other than look for an alternative product

43

3

avatar

Adam Driscoll

avatar

wolfbergmann

New-UDTabs -RenderOnActive – deprecation warning still present in 2026.1.7

Hi, we still get this warning whenever a page with New-UDTabs -RenderOnActive is opened: "[Warning] [App-Development] RenderOnActive is deprecated and will be removed in 4.0" The deprecation was tracked in https://github.com/ironmansoftware/powershell-universal/issues/1937 with the note that -Dynamic on New-UDTab should be enough. The same question was already asked on the but never got an answer ( RenderOnActive is deprecated and will be removed in 4.0? - PowerShell Universal - Ironman Software Forums ). We're on 2026.1.7 now, -RenderOnActive is still a valid parameter, and the warning is still emitted. Could someone clarify what the current status of this is and what the recommended migration path looks like? Thank you

62

3

avatar

rubentapia

avatar

dj

Error starting gRPC call on certain roles

We have roles setup for different user bases that are just setup to look if they are members of groups in Entra since we use SSO. For one of our groups/roles (BadRole), when they go to a page that they are allowed to go to, they get the following error: One or more errors occurred Status(StatusCode="Internal", Detail="Error starting gRPC call. HttpRequestException: Requesting HTTP version 2.0 with version policy RequestVersionExact while unable to establish HTTP/2 connection.", DebugException="System.Net.Http.HttpRequestException: Requesting HTTP version 2.0 with version policy RequestVersionExact while unable to establish HTTP/2 connection.") [image] When I go to the page as my administrator role, it works fine: [image] It's a simple form that doesn't checking of roles or do any permission specific lookups: New-UDGrid -Item -ExtraSmallSize 3 -Content { $Session:RNOutput = 'None' New-UDForm -SubmitText "View Info" -ButtonVariant contained -Content { New-UDTextbox -Id "RNLocID" -Placeholder "LocID" -Label "LocID" New-UDSelect -Label "Select a Page" -Id "TableSelect" -Option { New-UDSelectOption -Name "SiteMain" -Value "SiteMain" New-UDSelectOption -Name "Location" -Value "Location" New-UDSelectOption -Name "Equipment" -Value "Equipment" New-UDSelectOption -Name "Circuits" -Value "Circuits" New-UDSelectOption -Name "Phone Lines" -Value "Phones" New-UDSelectOption -Name "Work Orders" -Value "WorkOrders" New-UDSelectOption -Name "Employees" -Value "Employees" New-UDSelectOption -Name "AV" -Value "AV" } -DefaultValue "SiteMain" } -OnValidate { $FormContent = $EventData if ($FormContent.RNLocID -eq $null -or $FormContent.RNLocID -eq '') { New-UDFormValidationResult -ValidationError "The LocID is required" } Else { New-UDFormValidationResult -Valid } } -OnSubmit { Invoke-UDRedirect -Url "/OurSite/$($EventData.RNLocID)/$($EventData.TableSelect)" } } The UDPage has this at the top: New-UDPage -Url "/OurSite" -Name "OurSite" -Role @('Administrator', 'BadRole') -Content { ... There is nothing the PSU logs at the time of loading the page, we do not use a proxy internally and we do have our site behind a load balancer. We did however, test going directly to the PSU servers (we have 2) and not thru the load balancer and the issue still remained. We are currently on version 2026.1.6 and tested it on 2026.2 in our QA environment with the same issue. Any ideas?

28

1

avatar

rubentapia

avatar

gabrielguardiola

when starting powershelluniversal version fromZIP, first-run page stay black

Hello due to certain security restriction i had some issues starting powershell universal as a service (service cannot access easily internet). while i'm working on a POC, i tried to execute as zip/portable version, where i have a better control to the proxy access. unfortunatelly, each time i start Start-Process .\Universal\Universal.Server.exe , when i connect to the web page First-run , it start black, nothing appear http://localhost:5000/first-run in the console the last lines are 404 with Blazor [18:27:50 INF] Microsoft.AspNetCore.Hosting.Diagnostics Request finished HTTP/1.1 GET http://localhost:5000/first-run - 200 null text/html; charset=utf-8 1455.5383ms [18:27:51 INF] Microsoft.AspNetCore.Hosting.Diagnostics Request finished HTTP/1.1 GET http://localhost:5000/_framework/blazor.server.js?v=2026.2.0 - 404 0 null 365.1191ms [18:27:51 INF] Microsoft.AspNetCore.Hosting.Diagnostics Request reached the end of the middleware pipeline without being handled by application code. Request path: GET http://localhost:5000/_framework/blazor.server.js, Response status code: 404 any suggestion?

30

5

avatar

gabrielguardiola

avatar

rbaker1

OIDC and Windows Auth coexistence.

We have a deployment that we configured OIDC on and this is working as expected. Now I have a use case for Windows Authentication for API endpoints. I am able to use Windows Auth properly when OIDC is disabled or Windows Auth is defined first. But Defining Windows Auth first breaks OIDC for the portal. Is there a supported way for these two configurations to coexist? We have PSU installed as a service and when OIDC is defined first I get a 401 unauthorized when trying to use the -UseDefaultCredentials parameter of Invoke-RestMethod against an API endpoint. I found reference to a header X-Windows-Auth but trying this did not change the result.

56

3

avatar

rbaker1

avatar

lloydmitchell

Resolved

Git sync failure when using SSH keys

Hi, I'm attempting to use ssh keys instead of username/password credential with Azure devops. After generating the credential on PSU and entering it into the keys section in the cloud, I keep encountering this when trying to sync: [image] Hoping for a little insight on where to go for troubleshooting this further!

Recommended Answer

8 days ago

Hi, I'm attempting to use ssh keys instead of username/password credential with Azure devops. After generating the credential on PSU and entering it into the keys section in the cloud, I keep encountering this when trying to sync: [image] Hoping for a little insight on where to go for troubleshooting this further! lloydmitchell The first thing I would check is whether the Git settings are using the external Git client. In PowerShell Universal, SSH-key Git sync is an external git.exe path rather than LibGit2Sharp. Please try this: Install Git for Windows on the PSU server if it is not already installed. In PSU, go to Settings -> Git and enable Use External Git Client . Use the Azure DevOps SSH clone URL, not the HTTPS URL. The Azure DevOps SSH URL should look like: git@ssh.dev.azure.com:v3/<organization>/<project>/<repository> Go to Platform -> SSH Keys in PSU and make sure the generated key has a real non-empty name. Copy the PSU-generated public key and add it to your Azure DevOps user profile under SSH public keys . In Settings -> Git , select that SSH key in the SSH key dropdown. Click Synchronize Now . If you are currently using the internal Git client, or if the Git username field is blank while using the non-external client, the Value cannot be null. (Parameter 'name') error can happen because the internal Git needs a non-empty Git identity name. That error does not necessarily mean Azure DevOps rejected the SSH key. The relevant docs are the PSU Git page and Microsoft's Azure DevOps SSH key page: https://docs.powershelluniversal.com/config/git https://learn.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate If that still fails after switching to the external client, please send: PSU version. Whether Use External Git Client is enabled. The URL shape, sanitized to hide organization/project/repo if needed, but preserving whether it is git@ssh.dev.azure.com:v3/... or https://.... The full Git sync log entry from systemLog.txt. Whether the PSU service account has a %USERPROFILE%\.ssh folder on the server. Thanks 👍

31

2

avatar

lloydmitchell

avatar

djmentat

Automation / Jobs page not loading the Jobs

Product: PowerShell Universal Version: 5.5.5 Hey PSU folks, I have an environment where Okta workflows will call PSU APIs, which will create a JSON “staging” file in a folder relevant to the API/script. From there I have job scripts on schedules that run so often, check for staging files, and when found the scripts import them and take actions. Grand total I have 14 scheduled jobs running per hour. When there’s no staging files, the scripts simply exit and there’s very little written to the PSU Jobs. When there are staging files, they import them, take actions, and most things are written to the PSU Jobs stream and logged in the PSU Jobs. At first, I had no issue with the Automation / Jobs page loading all the jobs. Here lately the Jobs page will not load and just sits there spinning like it’s trying to load the jobs data, but it won’t. Usually on a reboot the jobs will load for a day or two, but after that they will not. When I click on Automation / Jobs and it’s trying to load the Jobs, I notice the resource usage on the server starts climbing until there are no more resources. I doubled the resources on the server, but that didn’t help. Also, when I click on Automation / Jobs and it’s stuck spinning I can’t click out of it. I’ll click something else and the URL in the browser will update, but it will not browse to the newly clicked location. I then have to click refresh on the browser for it to leave the Jobs page and go to the newly clicked page. Note that in my Sandbox environment we have an exact copy of this setup, except the schedules are disabled and we manually trigger the job scripts there. That environment loads the Jobs page every time without issue, but there are far fewer jobs in that environment. Any ideas? At 14 scheduled jobs per hour, am I simply writing too many jobs for it to load them? Is there some sort of limit, roll over, or other settings I can configure to keep only 14 days’ worth of jobs, so they load? Thanks, Rob

91

2

avatar

djmentat

avatar

djmentat

Resolved

New-UDSelect text is missing from the text box

Product: PowerShell Universal Version: 2026.1.6 After upgrading from 5.2.1 to 2026.1.6, I'm having an issue with New-UDSelect. The default value, nor a selected value, show in the text box anymore. When clicking the dropdown, the options are there but when clicking one it does not show the value in the text box. However, on the backend the selection is good. Clicking submit on the form passes validation and the ticket that is opened has the correct value listed. It's a front end issue, where the user cannot see any value in the box; whether it's the default value or a selected value. Seems to be related to https://forum.devolutions.net/topics/54901/bug-new-udselectgroup I found that if I remove my theme, the issue goes away. My theme is Material Ui based, so I commented out all the Mui overrides from the theme file then added them back in one at a time. I found the one that is having trouble is MuiListItemText. When you click the dropdown box to see the selections, I have the background set to a dark shade of gray and when hovering it changes to a lighter shade of gray. For contrast, I have the text color set to white "#ffffff" in MuiListItemText. When you click the dropdown box you can read the text as it's white. Normally, the text in the New-UDSelect text box remains as default, black. It's been working this way for 5 years, but now that I've upgraded to 2026.1.6 it seems the text in New-UDSelect box and the text of the selections are treated as the same color as what's in MuiListItemText. If I set MuiListItemText to a different color, I can see the default and selected values in the box, but it makes the text in the dropdown selections funky. So, it seems the text of the New-UDSelect value box and the text of the dropdown items used to be different, but now they're being seen as the same??? This is how it has been looking for the past 5 years. White text in the dropdown selections using MuiListItemText, and default/black text in the text box. [image] How it looks after upgrading to 2026.1.6. Notice you can't see anything in the text box. [image] How it looks if I change MuiListItemText to a different color, like black. [image] How it looks if I remove theming. [image] Code for the New-UDSelect $theme = Import-PowerShellDataFile '<Full path to theme file>.psd1' New-UDDashboard -Title 'Page Testing' -Content { New-UDSelect -Id 'select_region' -Label 'Region:' -Option { New-UDSelectOption -Name 'Central US' -Value 'centralus' New-UDSelectOption -Name 'West Europe' -Value 'westeurope' } -DefaultValue 'centralus' } -Theme $theme Code in my theme.psd1 file, from the overrides section. overrides = @{ MuiListItemText = @{ primary = @{ color = '#ffffff' fontSize = 14 fontWeight = 500 } }# MuiListItemText }# Overrides Unfortunately, I learned what I needed to know about Mui 5 years ago; just enough to get this theme created. I haven't worked with it since, so I can't take the troubleshooting any further. Seems this may be an issue with PSU, where the MuiListItemText is now being applied to both locations? For now I can change MuiListItemText color to black, as a work around. Would this be fixed in a future PSU update, or do I need to somehow put something else in my theme file, in my Mui overrides, to have the text be different colors between the dropdown selections and the text box text? Thanks, Rob

Recommended Answer

9 days ago

You're right. My mistake. The below workaround that did work was to scope the override under the select slot and then target the nested MuiListItemText-primary there: Try adding this to the overrides section alongside your current MuiListItemText: MuiSelect = @{ select = @{ '& .MuiListItemText-primary' = @{ color = '#000000' } } } Keep your existing MuiListItemText white override for the dropdown items. This change scopes the black text only to MuiListItemText-primary when it is rendered inside the closed Select display. If this still does not help, then I would need a copy of your theme file with any sensitive information redacted 👍 DataTraveler Woo-Hoo!!!!! That did the trick :) Thank you very much for that Mui workaround. Makes things much better :) BR, Rob Walden

131

10

avatar

djmentat

avatar

mczajkowski

Resolved

New install - cannot login with Devolutions account

On a fresh Windows MSI install of v2026.2.0.0 of Powershell Universal, when attempting to login with my Devolutions account it redirects to this URL: http://localhost:60370/rdm-auth-loopback And fails with "localhost can't currently handle this request. HTTP ERROR 500". I can complete the setup by creating the local admin user and running unlicensed, but I'd like to have access to the full feature set.

Recommended Answer

11 days ago

Disregard, looks like I just needed to verify my Devolutions account and I was able to proceed. Thanks for the quick reply.

38

3

avatar

DataTraveler

avatar

Marco

Resolved

SQLite Error 5: 'database is locked'

Product: PowerShell Universal Version: 2026.1.5 Hello everyone, I currently have a (serious) problem with a dispatcher script that throws errors when executing around 150 scripts, for some of them: Status(StatusCode="Unknown", Detail="Exception was thrown by handler.", DebugException="Grpc.Core.Internal.CoreErrorDetailException: {"created":"@1778133607.433000000","description":"Error received from peer ipv6:[::1]:50383","file":"..\..\..\src\core\lib\surface\call.cc","file_line":953,"grpc_message":"Exception was thrown by handler.","grpc_status":2}") Failed to check concurrency limits.: SQLite Error 5: 'database is locked'. , Status(StatusCode="Unknown", Detail="Exception was thrown by handler. SqliteException: SQLite Error 5: 'database is locked'.") and SQLite Error 5: 'database is locked' . It is only a handful of scripts, but this could cause major issues in the production environment. For executing the 150 scripts I use several predefined caches, which save me from constantly querying Active Directory. I have already limited the maximum number of parallel executions to 5. The whole setup runs on IIS and PowerShell 7. I hope someone can help me as soon as possible. Should i enable the IIS advanced setting property “Disable Overlapped Recycle” from “false” to “true”?

Recommended Answer

10 days ago

Hi Adam Driscoll , after I performed the update to version 26.2.0, I was no longer able to detect any SQL error messages. Furthermore, there are no longer any issues with the (sporadic) execution of app tokens.

117

6

avatar

Marco

avatar

blindzero

New-UDEditor - how is it really intended to work?

Hi there, I wanted to use New-UDEditor in an PSU App. Unfortunately, the documentation is a little...well..."underdefined" and the forum doesn't contain any entry on this component. New-UDEditor -Id "txtOoOMessage" -Format html -Data $oooMessageDataDefault -OnChange { $oooMessageData = $Body Show-UDToast -Message $oooMessageData -Persist # works } New-UDButton -Id "btnConfirmOoOMessage" -Text "Confirm" -OnClick { $OffboardingRequestObject.oooMessage = $oooMessageData # does not work Write-Host "`$OffboardingRequestObject.oooMessage: $($OffboardingRequestObject.oooMessage)" Write-Host "`$EventData.Context.txtOoOMessage: $($EventData.Context.txtOoOMessage)" Write-Host "`$EventData.Context.txtOoOMessage.oooMessageData: $($EventData.Context.txtOoOMessage.oooMessageData)" Write-Host "`$EventData.Context.txtOoOMessage.Body: $($EventData.Context.txtOoOMessage.Body)" Write-Host "`$EventData.Context.txtOoOMessage.Value: $($EventData.Context.txtOoOMessage.Value)" Write-Host "Get-UDElement txtOoOMessage.value: $((Get-UDElement -Id "txtOoOMessage").value)" } I could find out that within the Editor component, there is a $Body var defined. However, it doesn't seem to be available outside of the Editor itself, e.g. in a Confirm-Button that is using that Body var to set it into another variable. All debugging outputs remain empty: [6/7/2026 11:56:27 AM] [Information] [App-NTT User Management] Get-UDElement txtOoOMessage.value: [6/7/2026 11:56:27 AM] [Information] [App-NTT User Management] $EventData.Context.txtOoOMessage.Value: [6/7/2026 11:56:27 AM] [Information] [App-NTT User Management] $EventData.Context.txtOoOMessage.Body: [6/7/2026 11:56:27 AM] [Information] [App-NTT User Management] $EventData.Context.txtOoOMessage.oooMessageData: [6/7/2026 11:56:27 AM] [Information] [App-NTT User Management] $EventData.Context.txtOoOMessage: [6/7/2026 11:56:27 AM] [Information] [App-NTT User Management] $OffboardingRequestObject.oooMessage: On top of that I wanted to hand in a default text via $oooMessageDataDefault but there is nothing said except that this shall be a Hashtable type, but nothing about its design, as I assume this requires some defined keys? I tried $oooMessageDataDefault = @{ Body = "Default Text" } but without any success. [image] Some P.S. after playing around with debugger I got it at least working if having an object always updated with -OnChange (although this is a little overload as asked above) New-UDEditor -Id "txtOoOMessage" -Format html -Data $oooMessageDataDefault -OnChange { $OffboardingRequestObject.oooMessage = $Body Show-UDToast -Message $OffboardingRequestObject.oooMessage -Persistent } New-UDButton -Id "btnConfirmOoOMessage" -Text "Confirm" -OnClick { Write-Host "`$OffboardingRequestObject.oooMessage: $($OffboardingRequestObject.oooMessage)" Show-UDToast -Message $OffboardingRequestObject.oooMessage } This lead to some changed processing as I am using this editor in a UDStepper and wanted to have it "Next" > "Back" compatible, taking the generated $Body string again. $oooMessageDataDefault = @{ Body = "Default Text" } $OffboardingRequestObject.oooMessage = $oooMessageDataDefault New-UDStep -Label "3 - Out of Office Message" -OnLoad { New-UDEditor -Id "txtOoOMessage" -Format html -Data $OffboardingRequestObject.oooMessage -OnChange { $OffboardingRequestObject.oooMessage = $Body } New-UDButton -Id "btnConfirmOoOMessage" -Text "Confirm" -OnClick { Show-UDToast -Message $OffboardingRequestObject.oooMessage -Persistent Write-Host "`$OffboardingRequestObject.oooMessage: $($OffboardingRequestObject.oooMessage)" } } Different to Select / Text components it seems that I cannot use Get-UDElement with the editor and have -Value option like this: -Value $EventData.Context.txtUserSelect So my idea was to have $Body put on every change into my persistent $OffboardingRequestObject which is filled in the beginning with the default text. This now creates the conflict as -Data expects hashtable, and the $Body output in my $OffboardingRequestObject is a string... My questions about the editor are: How does the -Data hashtable needs to be designed? How is it supposed to catch the data from the editor - and hopefully without -OnChange, as this creates quite a lot of load which is unnecessary with a confirm / save button. Thanks a lot!

62

4

avatar

DataTraveler

avatar

jdietz

making New-UDTextbox required

Very new Powershell Universal User here. Being using in DEV and company is about to purchase the license. I'm creating an app that has several types of inputs to collect. I need some of the input to be required by the end user. How can I make New-UDTextbox a required field? AI suggested there is a -Required switch....but looking at the cmdlet documentation I don't see that or any other switch that might help me here. Curious if anyone has a solution.

68

7

avatar

DataTraveler

avatar

lbaxhaku

Im getting loads of these service user login issues(1311) in my scheduled jobs

I periodically am getting schedules failing because of this error, so for a job that runs 6 times a hour, 2 out of 6 will fail with this error: Error executing job: Failed to login user (1311). System.ComponentModel.Win32Exception (1311): We can't sign you in with this credential because your domain isn't available. Make sure your device is connected to your organization's network and try again. If you previously signed in on this device with another credential, you can sign in with that credential. Some info around the setup: 2 Node Setup, SQL database backend(is in a 2 node AG as well) Repo is hosted on a UNC path but added via c:\PSU** as a sys link PSU runs via a gmsa account Have multiple other service accounts as variables which then the schedules use for their jobs ive traced and logged the connection to the DC's all night on multiple nights, but the connection is always there no fluctuation in stability, cant be the credentials since its a GMSA account Its pretty annoying having to hope for a schedule to run since its important they run reliably, when they need to run. Can anyone please give me some pointers or support on this? Let me know if i can provide more information!

75

3

avatar

DataTraveler

avatar

stigjohansson

App Pages - Error: System.InvalidOperationException

PSU (2026.1.0) hosted on IIS fails to render Pages section on any Apps, issue persists after recycle and restart. Unsure if this issue is related to blazor.server.js?v=2026.1.6:1 Uncaught (in promise) Error: Cannot send data if the connection is no… since the initial errors are different. [image] blazor.server.js?v=2026.1.0:1 [2026-06-05T11:48:29.463Z] Error: System.InvalidOperationException: More than one sibling of component 'AntDesign.Internal.TableRowWrapper`1[PowerShellUniversal.DashboardPage]' has the same key value, '-2094882147'. Key values must be unique. at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.ThrowExceptionForDuplicateKey(Object key, RenderTreeFrame& frame) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.BuildKeyToInfoLookup(DiffContext diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl) at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment, Exception& renderFragmentException) at Microsoft.AspNetCore.Components.RenderTree.Renderer.ProcessRenderQueue() log @ blazor.server.js?v=2026.1.0:1 blazor.server.js?v=2026.1.0:1 [2026-06-05T11:48:29.464Z] Information: Connection disconnected. 6blazor.server.js?v=2026.1.0:1 Uncaught Error: No interop methods are registered for renderer 1 at k (blazor.server.js?v=2026.1.0:1:13525) at blazor.server.js?v=2026.1.0:1:13431 at T (blazor.server.js?v=2026.1.0:1:13614) at I (blazor.server.js?v=2026.1.0:1:13405) at A.dispatchGlobalEventToAllElements (blazor.server.js?v=2026.1.0:1:16026) at A.onGlobalEvent (blazor.server.js?v=2026.1.0:1:15235) blazor.server.js?v=2026.1.0:1 Uncaught (in promise) Error: Cannot send data if the connection is not in the 'Connected' State. at on.send (blazor.server.js?v=2026.1.0:1:81942) at Jt._sendMessage (blazor.server.js?v=2026.1.0:1:59570) at Jt._sendWithProtocol (blazor.server.js?v=2026.1.0:1:59660) at Jt.send (blazor.server.js?v=2026.1.0:1:59768) at yo.beginInvokeDotNetFromJS (blazor.server.js?v=2026.1.0:1:136744) at w.invokeDotNetMethodAsync (blazor.server.js?v=2026.1.0:1:3968) at E.invokeMethodAsync (blazor.server.js?v=2026.1.0:1:5476) at r.observerCallBack (resizeObserver.ts:99:15) at ResizeObserver.<anonymous> (resizeObserver.ts:23:75) blazor.server.js?v=2026.1.0:1 Uncaught (in promise) Error: Cannot send data if the connection is not in the 'Connected' State. at on.send (blazor.server.js?v=2026.1.0:1:81942) at Jt._sendMessage (blazor.server.js?v=2026.1.0:1:59570) at Jt._sendWithProtocol (blazor.server.js?v=2026.1.0:1:59660) at Jt.send (blazor.server.js?v=2026.1.0:1:59768) at yo.beginInvokeDotNetFromJS (blazor.server.js?v=2026.1.0:1:136744) at w.invokeDotNetMethodAsync (blazor.server.js?v=2026.1.0:1:3968) at E.invokeMethodAsync (blazor.server.js?v=2026.1.0:1:5476) at eventHelper.ts:34:40 4blazor.server.js?v=2026.1.0:1 Uncaught Error: No interop methods are registered for renderer 1 at k (blazor.server.js?v=2026.1.0:1:13525) at blazor.server.js?v=2026.1.0:1:13431 at T (blazor.server.js?v=2026.1.0:1:13614) at I (blazor.server.js?v=2026.1.0:1:13405) at A.dispatchGlobalEventToAllElements (blazor.server.js?v=2026.1.0:1:16026) at A.onGlobalEvent (blazor.server.js?v=2026.1.0:1:15235) 2blazor.server.js?v=2026.1.0:1 Uncaught (in promise) Error: Cannot send data if the connection is not in the 'Connected' State. at on.send (blazor.server.js?v=2026.1.0:1:81942) at Jt._sendMessage (blazor.server.js?v=2026.1.0:1:59570) at Jt._sendWithProtocol (blazor.server.js?v=2026.1.0:1:59660) at Jt.send (blazor.server.js?v=2026.1.0:1:59768) at yo.beginInvokeDotNetFromJS (blazor.server.js?v=2026.1.0:1:136744) at w.invokeDotNetMethodAsync (blazor.server.js?v=2026.1.0:1:3968) at E.invokeMethodAsync (blazor.server.js?v=2026.1.0:1:5476) at r.observerCallBack (resizeObserver.ts:99:15) at ResizeObserver.<anonymous> (resizeObserver.ts:23:75) blazor.server.js?v=2026.1.0:1 Uncaught (in promise) Error: Cannot send data if the connection is not in the 'Connected' State. at on.send (blazor.server.js?v=2026.1.0:1:81942) at Jt._sendMessage (blazor.server.js?v=2026.1.0:1:59570) at Jt._sendWithProtocol (blazor.server.js?v=2026.1.0:1:59660) at Jt.send (blazor.server.js?v=2026.1.0:1:59768) at yo.beginInvokeDotNetFromJS (blazor.server.js?v=2026.1.0:1:136744) at w.invokeDotNetMethodAsync (blazor.server.js?v=2026.1.0:1:3968) at E.invokeMethodAsync (blazor.server.js?v=2026.1.0:1:5476) at eventHelper.ts:34:40 send @ blazor.server.js?v=2026.1.0:1 _sendMessage @ blazor.server.js?v=2026.1.0:1 _sendWithProtocol @ blazor.server.js?v=2026.1.0:1 send @ blazor.server.js?v=2026.1.0:1 beginInvokeDotNetFromJS @ blazor.server.js?v=2026.1.0:1 invokeDotNetMethodAsync @ blazor.server.js?v=2026.1.0:1 invokeMethodAsync @ blazor.server.js?v=2026.1.0:1 (anonymous) @ eventHelper.ts:34 setTimeout callback @ eventHelper.ts:34 (anonymous) @ eventHelper.ts:47 (anonymous) @ eventHelper.ts:109

50

4

avatar

stigjohansson

avatar

SunnyJ

Multiple Endpoints Using the Same File

Product: PowerShell Universal Version: 2026.1.2 Hello, I’m trying to create multiple endpoints off the same script but it’s giving the following error: Endpoint already exists at path While the error is pretty self-explanatory, is there a reason why different endpoints can’t use the same code source? What I’m trying to accomplish is support GET requests without authentication but require auth/roles for POST or PATCH, where the code handles all three of the options rather than splitting it across multiple files and having repeat code. Is there a good way to accomplish without using multiple files?

153

7

avatar

DataTraveler

avatar

michaelwatts

PSU 2026.1 - Permissions on Scripts Not Working

Hello, I just upgraded and now permissions on script that are called from a dashboard for a custom role is no longer working. I verified that the role has automation/script - Read automation/script - Execute I even tried granting access via the script too. [5/19/2026 10:32:44 AM] [Error] [App- Intune Enrollment] Permission denied. The role specified does not have access to this resource. [File]: Intune Enrollment.ps1 [Endpoint]: d91db62a-8508-49b1-96ad-ca82f99415de [Page]: fcd68ebd-5a2d-4ed4-9408-79eee745ac01 I tried restarting the service as well. Not sure what I am missing. They can access the dashboard just fine, this happens when they click the button to look up the device which calls a script.

135

13

avatar

Adam Driscoll

avatar

timgo

Workflow - cannot schedule or invoke 2026.2.0

Just upgraded to 2026.2.0, playing about with Workflows and when I schedule a workflow it doesn't fire. Log gives this error: Scheduling job 'test' with schedule sdfsdfsdf on time zone (UTC+00:00) Dublin, Edinburgh, Lisbon, London 2026-06-05 09:46:37.774 +01:00 [WRN][Hangfire.AutomaticRetryAttribute] Failed to process the job '25': an exception occured. Job was automatically deleted because the retry attempt count exceeded 0. System.NullReferenceException: Object reference not set to an instance of an object. at PowerShellUniversal.Automation.ExecutionService.Execute(ExecutionOptions executionOptions) in D:\a\powershell-universal\powershell-universal\src\PowerShellUniversal.Automation\ExecutionService.cs:line 145 at InvokeStub_TaskAwaiter.GetResult(Object, Object, IntPtr*) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) Also, attempted to work around it by creating a script with Invoke-PSUWorkflow as per PSU documentation and schedule that up, but I get "The term 'Invoke-PSUWorkflow' is not recognized as a name of a cmdlet, function, script file, or executable program." Seems as though that cmdlet is not included despite the documentation thinking otherwise..? Get-Command -Module Universal | Where-Object Name -like '*Workflow*' CommandType Name Version Source ----------- ---- ------- ------ Cmdlet Get-PSUWorkflow 2026.2.0 Universal Cmdlet New-PSUWorkflow 2026.2.0 Universal Cmdlet New-PSUWorkflowActivity 2026.2.0 Universal Cmdlet New-PSUWorkflowParameter 2026.2.0 Universal Cmdlet Remove-PSUWorkflow 2026.2.0 Universal Cmdlet Set-PSUWorkflow 2026.2.0 Universal

58

5

avatar

Adam Driscoll

avatar

blindzero

Resolved

API endpoint token auth works in app without pages - but not in pages

Hi there, I found a strange behavior in apps when calling endpoints in PSU. Summary Token authentication works perfectly if the app does not have pages and just -Content {} which includes Invoke-WebRequest. As soon as you move the working structure out of -Content {} from an app into Pages it doesn't work anymore: Details I have a working element as if (-not $UserSuggestions){ $RequestParameter = $RequestParameterDefault $RequestParameter["Method"] = "Get" $RequestParameter["Uri"] = "https://${hostName}:8443/ad/user" $Result = (Invoke-RestMethod @RequestParameter) $UserSuggestions = @() if ($Result.Data) { foreach ($user in $Result.data.GetEnumerator() ) { # using objectGUID as value as UPN can be empty $UserSuggestions += (New-UDAutocompleteOption -Name "$($user.name) `($($user.userPrincipalName)`)" -Value $($user.objectGUID)) } Show-UDToast -Message "User data loaded successfully" -MessageColor "green" -BackgroundColor "lightgreen" } else { Show-UDToast -Message "Failed to load user data" -MessageColor "darkred" -BackgroundColor "lightred" } } else { Show-UDToast -Message "User data already loaded" -MessageColor "darkblue" -BackgroundColor "lightblue" } basically calling `/ad/user` endpoint on the PSU server. This works if it is integrated in: New-UDApp -Title "User Management" -Content { ... } I then moved it into a subpage which I declared via New-UDPage -Url "/user-offboarding" -Name "User Offboarding" -Content { and integrated in the app via $Pages = @() $Pages += Get-UDPage -Name "User Offboarding" New-UDApp -Title "User Management" -Pages $Pages Actual Behavior Invoke-WebRequest creates 401 unauthorized error when opening the page via menu. It works if no pages are created and just a single page app exists. Expected Behavior Token authentication should work as well on all subpages. Is that a bug I found or really expected behavior? How to resolve this issue?

Recommended Answer

16 days ago

Hi Adam Driscoll I could resolve the issue now after tinkering around... The intermittend issue was caused by initializing $Headers variable, which erased the existing token in the existing headers... The subpage issue was caused by a shared initialization of the variables for the RequestParameters outside of the page. Each page needs a new initialization as it seems that only pages are called by the app. Best, Matthias

52

3

avatar

blindzero

avatar

Mordecai

When using New-UDApp with -PageNotFound the default page "reset-password" is not working anymore

Hi, when i am using `PageNotFound` and `NotAuthorized` parameter for `New-UDApp` i cannot view the "reset-password" page when i run an app on "/" as ` BaseUrl` . When the password of PSU Admin acccount or other local accounts expires, the scriptblock in PageNotFound will be triggered and in my use case i will be redirected to a custom page. I do not know if this is also the same for other integrated urls that are located at "/". Anyone else have this? Can this please be reproduced/fixed? Demo code (AI generated, not tested, but parameters and usage are the same as for my use case): New-PSUApp -Name 'BugReport-ResetPassword' -BaseUrl '/' -Authenticated -Content { New-UDApp ` -Title 'Bug Report Demo' ` -PageNotFound { New-UDTypography -Text 'Custom PageNotFound' } ` -NotAuthorized { New-UDTypography -Text 'Custom NotAuthorized' } ` -Content { New-UDTypography -Text 'Home Page' } } Thanks René

97

3

avatar

DataTraveler

avatar

guenetg

Installation on a win server

Is there a difference at the end between installing with MSI or unzipping it or using the powershell module to do so?

45

1

avatar

Adam Driscoll

1 - 25 of 1915 items
Sysadminotaur pondering a question Special Q&A

Our CTO is answering your AI questions

A rare opportunity — ask our CTO directly.

13 questions already asked Closed
View questions →