Users

All Posts (4)

avatar

lauriestreet

Set-PSUCache -Integrated fails with "Request body too large" (30000000 bytes) - no documented way to raise the limit

avatar
avatar
avatar

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

avatar
avatar
avatar
avatar
avatar

-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 -Integrated

App reads it with:

Get-PSUCache -Key "SomeCacheKey" -Integrated

Theory: -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

avatar
avatar
avatar
avatar
avatar

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

  1. On a 2026.3.0 instance, create/use an app (New-PSUApp) without -GrantAppToken.

  2. In the app content, call Get-PSUCache -Key '<AnyCacheKey>' -Integrated for several distinct keys on page load.

  3. Reload the app/page repeatedly.

  4. 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

avatar
avatar

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.4

TIA

_Fonz

1 - 4 of 4 items