Infrastructure tab fails with 401 error after upgrading vRealize Automation
search cancel

Infrastructure tab fails with 401 error after upgrading vRealize Automation

book

Article ID: 341829

calendar_today

Updated On:

Products

VMware Aria Suite

Issue/Introduction

This article provides steps to resolve the 401 error after vRealize Automation upgrade.

Symptoms:
  • After a recent update to VMware vRealize Automation, 401 errors appear in the Infrastructure tab.
  • In the Web_Admin_All.log located in C:\Program Files (x86)\VMware\vCAC\Server\Website\Logs on the IaaS web server, you see errors similar to:

    [UTC:2016-03-31 18:18:00 Local:2016-03-31 12:18] [Error]: [sub-thread-Id="21" context token] Error occurred writing to the repository tracking log
    System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException:
    The handshake failed due to an unexpected packet format.
    at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
    at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
    at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
    at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
    at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
    at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
    at System.Net.ConnectStream.WriteHeaders(Boolean async)
    --- End of inner exception stack trace ---
    at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
    at System.Net.HttpWebRequest.GetRequestStream()
    at System.Data.Services.Client.ODataRequestMessageWrapper.SetRequestStream(ContentStream requestStreamContent)
    at System.Data.Services.Client.BatchSaveResult.BatchRequest()
    at System.Data.Services.Client.DataServiceContext.SaveChanges(SaveChangesOptions options)
    at DynamicOps.Repository.RepositoryServiceContext.SaveChanges(SaveChangesOptions options)
    at DynamicOps.Repository.Tracking.RepoLoggingSingleton.WriteExceptionToLogs(String message, Exception exceptionObject, Boolean writeAsWarning)
    INNER EXCEPTION: System.IO.IOException: The handshake failed due to an unexpected packet format.
    at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
    at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
    at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
    at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
    at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
    at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
    at System.Net.ConnectStream.WriteHeaders(Boolean async)


    Note: The preceding log excerpts are only examples. Date, time, and environmental variables may vary depending on your environment.
     
  • In the web.config file for the web administration service located in C:\Program Files (x86)\VMware\vCAC\Server\Website on the IaaS web server, the repository address is set to localhost on port 80, similar to:

    <add key="repositoryAddress" value="https://localhost:80/repository/" />


Environment

VMware vRealize Automation 7.6.x
VMware vRealize Automation 7.x
VMware vRealize Automation 7.5.x

Cause

Under some circumstances, the web.config file can be updated with an invalid URL during the update of the IaaS web services.

Resolution

To resolve this issue, update the web.config with the correct URL using the following procedure.
 
Note: If there are more than one IaaS web servers, this procedure will need to be completed on all nodes.
 
  1. Log in to the IaaS web server and navigate to the location of the C:\Program Files (x86)\VMware\vCAC\Server\Website\web.config file.
  2. Back up the website web.config file.
  3. Change the repository address to use the appropriate FQDN of the Model Manager Website node, which resides on the IaaS web server(s), similar to the following example:

    <add key="repositoryAddress</SPAN>" value="https://<IaaS Web FQDN>:443/repository/" />
     
  4. Run iisreset from an administrative command prompt to restart the service.