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.

https://blogs.technet.com/b/virtualworld/archive/2013/05/22/app-v-error-code-06-0000000e-explained.aspx

What you will see when launching an Application is the following error message:

ErrorMessage

And from PowerShell you will also see a similar error:

Error_PS

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.

procmon

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:

Catalog_Registry

And the file system for the User (%APPDATA%\Microsoft\AppV\Client\Catalog\Packages):

Catalog_FileSystem

When an application launches correctly you will see the following "PublishingSource" registry key name if your using Standalone Mode or Configuration Manager:

PublishingSource

If your using the App-V 5 Full Infrastructure you will see the following specifying the Publishing Server:

PublishingSource_Infra

If the "PublishingSource" registry key name doesn't exist then the App-V 5 Client will show the error to the user.

PublishingSource_Error

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:

Catalog_PS

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