Skip to main content

Inventory Service Cannot be Brought Up

One day, my vCenter Server suddenly lost search. It popped me "Unable to connect to web services to execute query. Verify that the 'VMware VirtualCenter Management Webservices' service is running on https://vCenter_Server_FQDN:10443" when I did object search on vSphere Client. Few hours later people starting complaint they got error on vSphere Web Client, it show "Client is not authenticated to VMware Inventory Service - https://Inventory_Service_FQDN:10443".

[do_widget "Language Switcher" wrap=aside title=false]

The weird thing was the issue got fixed automatically after one or two days. It struggled me a while until I did more research. Initially reset inventory service database helped, but later we cannot bring the service up after we upgraded vCenter Server to 5.5 update 2. The service hung on starting status. I noticed the free space of the drive stores Inventory Service was very low. After discussed with VMware support, we thought the issue was caused by the low space.

vCenter Inventory Service didn't fully bring up when first time the free space low, it leaded to VPX_PROPERTY_BULLETIN table in vCenter Server database was corrupted. Following restart got stuck due to that.

We eventually found a KB described same issue. Somehow it's a internal KB in English but a public in Japanese and Chinese. (Thanks god I know Chinese! :-) ). Here I post another public KB about the table. Searching for virtual machines in the vSphere Client and vSphere Web Client return the error: Search returned no results

In my case, basically it need to stop inventory service, reset the inventory service database, truncate the table, then restart vCenter services.

If you don't know how to reset inventory service please refer this KB.


  • This article only apply to vCenter Server 5.5.

  • When you do Inventory Service database reset, please don't restart the service after reset the database since you need to do table truncate before startup the service.

Popular posts from this blog

Connect-NsxtServer shows "Unable to connect to the remote server"

When you run Connect-NsxtServer in the PowerCLI, it may show "Unable to connect to the remote server".  Because the error message is a little bit confusing with other login issues. It's not easy to troubleshoot. The actual reason is the NSX-T uses a self-signed certificate, and the PowerCLI cannot accept the certificate automatically. The fix is super easy. You need to set the PowerCLI to ignore the invalid certificate with the following command: Set-PowerCLIConfiguration -Scope User -InvalidCertificateAction:Ignore -Confirm:$false

Setup Terraform and Ansible for Windows provisionon CentOS

Provisioning Windows machines with Terraform is easy. Configuring Windows machines with Ansible is also not complex. However, it's a little bit challenging to combine them. The following steps are some ideas about handling a Windows machine from provisioning to post configuration without modifying the winrm configuration on the guest operating system. Install required repos for yum. yum -y install yum -y install yum -y install yum -y install epel-release yum -y install yum-utils yum-config-manager --add-repo Install  Terraform . sudo yum -y install terraform Install  Ansible . sudo yum -y install ansible Install  Kerberos . yum -y install gcc python-devel krb5-devel krb5-libs krb5-workstation

How to List All Users in Terraform Cloud

Terraform has a rich API. However, the API documentation does not mention how to list all users. We can leverage the organization membership API and the PowerShell command  Invoke-RestMethod  to get a user list. 1. Create an organization token in Terraform Cloud. 2. Create the token variable ( $Token ) in PowerShell. $Token = "abcde" 3. Create the API parameters variable in PowerShell. $params = @{ Uri = "" Authentication = "Bearer" Token = $Token ContentType = "application/vnd.api+json" } Note: You need to replace ZHENGWU with your own organization name. And I used 100 at the end of the URI to retrieve the first 100 users. It can be any number.  4. Retrieve the API return and list the user's email address. $Test = Invoke-RestMethod @params $