App-V 5 - User Registry Setting missing 06-0000000E
Hi all,
Following on from a post I wrote about the 06-0000000E error code from a 4.x client, this error can also occur with App-V 5.
What you will see when launching an Application is the following error message:
And from PowerShell you will also see a similar error:
What does this error code mean:
Result: Error
Type: App-V
Module: Catalog (06)
HRESULT: 0x0000000e
Message: ERROR_OUTOFMEMORY
The translation of the error code doesn't give much away, what about a procmon trace?
If you run a procmon trace with some filtering you will eventually get to the following entry, "NAME NOT FOUND" against a registry key.
The reason it was filtered to here is due to the error being related to the "Catalog", the Catalog sits into two location, the registry:
And the file system for the User (%APPDATA%\Microsoft\AppV\Client\Catalog\Packages):
When an application launches correctly you will see the following "PublishingSource" registry key name if your using Standalone Mode or Configuration Manager:
If your using the App-V 5 Full Infrastructure you will see the following specifying the Publishing Server:
If the "PublishingSource" registry key name doesn't exist then the App-V 5 Client will show the error to the user.
To make sure the error doesn't occur make sure this registry key name exists for all packages in the catalog, if it doesn't it will fail to launch.
If you want to make this check easier then have a look at the following PowerShell script which uses a function "Test-RegistryValue" to check if the key exists:
########################################
# Function Test-RegistryValue
########################################
Function Test-RegistryValue($regkey, $name){
Get-ItemProperty $regkey $name -ErrorAction SilentlyContinue |
Out-Null
$?
}
########################################
# Variables
$nodeName = "localhost"
$User = "CurrentUser"
$Catalog = "SOFTWARE\Microsoft\AppV\Client\Packages"
$Packages = Get-AppvClientPackage | Where-Object { $_.IsPublishedToUser -eq $true }
# Opening Current User Registry
$registry = [microsoft.win32.registrykey]::OpenRemoteBaseKey("$User",$nodeName)
write-host
foreach($Package in $Packages){
$PackageID = $Package.PackageId
$VersionID = $Package.VersionId
write-host "PackageID:" $PackageID
write-host "VersionID:" $VersionID
write-host "PackageName:" $Package.Name
if((Test-RegistryValue "HKCU:\$Catalog\$PackageID\Versions\$VersionID\Catalog" -name "PublishingSource") -eq $true){
write-host "HKCU:\$Catalog\$PackageID\Versions\$VersionID\Catalog"
write-host "True" -f Green
}
if((Test-RegistryValue "HKCU:\$Catalog\$PackageID\Versions\$VersionID\Catalog" -name "PublishingSource") -eq $false){
write-host "HKCU:\$Catalog\$PackageID\Versions\$VersionID\Catalog"
write-host "False" -f Red
}
write-host
}
The script will return "True" - registry key name exists, "False" - registry key name doesn't exist.
Once the script has been ran it will return the following:
SCRIPT DISCLAIMER
The sample scripts are not supported under any Microsoft standard support program or service. The sample scripts are provided AS IS without warranty of any kind. Microsoft further disclaims all implied warranties including, without limitation, any implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages.
Hope this explains the error message and how you can resolve it.
David Falkus | Senior Premier Field Engineer | Application Virtualization, PowerShell, Windows Shell
Comments
- Anonymous
May 03, 2016
Thanks for sharing, the question is why is the PublishingSource is missing in the first place?- Anonymous
May 06, 2016
Hi Roy, on very first publishing of the application the publishingsource key will be populated and the application will launch, its what happens after that with how you manage your profiles for your users. There are lots of choices for how you manage your profile from local / roaming using mandatory / default profiles which can then be managed by an arrays of solutions from UE-V, Roaming Profile to 3rd Party solutions. There are questions to ask if you see this: Is that key preserved in the profile? are users roaming between different machines without logging off? Dave
- Anonymous