Set-PSUCache -Integrated fails with "Request body too large" (30000000 bytes) - no documented way to raise the limit
Version: 2026.3.3.0.
Hosting: Windows, self-hosted Kestrel (not IIS).
Error: Request body too large. The max request body size is 30000000 bytes from Set-PSUCache -Integrated.
What I tried: Kestrel:Limits:MaxRequestBodySize in appsettings.json, then a service restart. It made no difference.
Question: is there a supported way to raise the limit, or a recommended pattern for large cache items?
Cheers,
Integrated mode intermittently fails with "You must be running this command in PowerShell Universal to use the integrated mode" after upgrading to 2026.3.0
-Integrated cache reads now "Permission denied" for non-admin roles after 2026.3.1.0 - intended or bug?
Upgraded 2026.3.0 → 2026.3.1.0. The known Get-PSUCache -Integrated gRPC error ("You must be running this command in PowerShell Universal...") is gone, but now non-admin users get:
Permission denied. The role specified does not have access to this resource.- Works fine as Administrator.
- Fails for a custom role that already has app access via New-PSUApp -Role.
Cache was written without -Role:
Set-PSUCache -Key "SomeCacheKey" -Value $Data -IntegratedApp reads it with:
Get-PSUCache -Key "SomeCacheKey" -IntegratedTheory: -Integrated used to bypass per-user authorization entirely; now (post CVE-2026-4064 fix) it authorizes as the real calling user, so a cache entry with no -Role is effectively Administrator-only.
Is explicitly setting -Role on Set-PSUCache now required for non-admin roles to read via -Integrated, or is this a new bug in 2026.3.1.0?
Integrated mode intermittently fails with "You must be running this command in PowerShell Universal to use the integrated mode" after upgrading to 2026.3.0
Description of Issue
After upgrading our PSU Dev instance from 2026.2.0 to 2026.3.0, dashboard apps that call Get-PSUCache -Integrated intermittently fail with:
You must be running this command in PowerShell Universal to use the integrated mode.
This confirms -Integrated is required for these calls to function (they were designed to bypass the Management API's role/token auth entirely), and that the integrated back-channel itself is broken/flaky, not the calling code.
Steps to Reproduce
On a 2026.3.0 instance, create/use an app (New-PSUApp) without -GrantAppToken.
In the app content, call
Get-PSUCache -Key '<AnyCacheKey>' -Integratedfor several distinct keys on page load.Reload the app/page repeatedly.
Observe intermittent failures on arbitrary -Integrated calls with the error above — not on every load, and not consistently on the same call.
Expected Behavior
-Integrated calls made from inside a running PSU app should reliably execute against the same server process without needing Management API auth, regardless of load timing.
Actual Behavior
The integrated back-channel intermittently fails to establish/verify, causing the cmdlet to conclude (incorrectly) that it isn't running inside PSU.
Let me know if you need anything else from me.
Cheers
OnValidate doesn't seem to dynamically update for TreeView
When using OnValidate for form elements all of them are validated (as either pass or fail) while using the element, without changing focus to another element. However when selecting any node on a TreeView the OnValidate script does not work until moving focus to another element (i.e. not just clicking blank space).
So the OnValidate script works as intended, but does not seem to follow the same process as the other elements (textbox, dropdown, radio button, autocomplete). I have found that clicking into another element also isn’t enough for the OnValidate to fire, you need to also fill out that element.
This is the code I have for the treeview
New-UDDynamic -Id "VMWareFolderLocation" -Content {
if ($null -ne $page:SelectedSite) {
$siteFolders = $null
$siteFolders = $Folders | Where-Object { (($_.Path -split '\\')[0]) -match $page:SelectedSite } | Sort-Object Name
New-UDTypography -Text "VMWare Folder for site: $($page:SelectedSite)"
New-UDTreeView -Id "FolderTreeView-$($page:SelectedSite)" -Node {
$rootFolders = $siteFolders | Where-Object { $_.Path -match '^[^\\]+\\[^\\]+$' }
foreach ($singleFolder in $rootFolders) {
New-UDTreeNode -Name $singleFolder.Name -Id $singleFolder.Id
}
} -OnNodeClicked {
$selectedId = $EventData.Id
$childFolders = $siteFolders | Where-Object { $_.ParentId -eq $selectedId } | Sort-Object Name
foreach ($child in $childFolders) {
New-UDTreeNode -Name $child.Name -Id $child.Id
}
$page:chosenFolderPath = ((($siteFolders | Where-Object { $_.ID -eq $selectedId }).Path) -replace '^[^\\]+\\', '') -replace '\\', '/'
}
}
}on the -OnValidate snippet for the above TreeView
-OnValidate {
if ($null -eq $page:chosenFolderPath -or $page:chosenFolderPath -eq '') {
New-UDFormValidationResult -ValidationError "VM Folder is required"
}
else {
New-UDFormValidationResult -Valid
}
}Product: PowerShell Universal
Version: 5.5.4TIA
_Fonz