vpxd service crashing on vCenter with ODBC error: (22001)
search cancel

vpxd service crashing on vCenter with ODBC error: (22001)

book

Article ID: 408825

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

  • vmware-vpxd service fails to start.

  • On manually starting the service, it goes back to stopped state immediately.

  • vCenter is accessible but nothing within the UI loads.

  • /var/log/vmware/vpxd/vpxd.log reports:

SQLError was thrown: "ODBC error: (22001) - Error: value too long for type character varying (1000); Error while executing the query" is returned when executing SQL statement "UPDATE VPX_VM_VIRTUAL_DEVICE SET CONN_STATUS=?...and vpxd was crashing.

Environment

vCenter 7.x and 8.x

Cause

An overly long path for an ISO mounted to a VM is preventing vCenter from updating its database, leading to crashes of the vpxd service.

/var/log/vmware/vpxd/vpxd.log

YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] [VdbStatement] Execute result code: -1
YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] [VdbStatement] SQL execution failed: UPDATE VPX VM VIRTUAL DEVICE SET CONN STATUS =? , DEVICE INFO SUMMARY =? , DEVICE TEXT =? WHERE ID=? AND DEVICE KEY =?
YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] [VdbStatement] Execution elapsed time: 2 ms
YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] [VdbStatement] Statement diagnostic data from driver is 22001:0:1:ERROR value too long for type character varying(255);
YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] [VdbStatement] Bind parameters:
YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] [VdbStatement][0]datatype: 7, size: 7, arraySize: 0
YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] [VdbStatement] value = "untried"
YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] [VdbStatement] [1]datatype: 8, size: 17239, arraySize: 0
YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] [VdbStatement] value = "ISO [DATASTORE NAME] .snapshot/8am,12pm,4pm,8pm.2025-08-18_1205/contentlib-19ad569e-####-####-####b30591fb51b2/184c5e93-18e1-####-####-######a675/SW_DVD9_WIN_SERVER_STD_CORE_2022_2108.32_6..." 
YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] [VdbStatement] [2]datatype: 8, size: 35103, arraySize: 0
YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] [VdbStatement] value = "<obj xmlns: xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="urn:vim25" versionId="8.0.3.0" xsi: type="VirtualCdrom"><key>16000</key><deviceInfo><label ... "
YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] [VdbStatement] [3]datatype: 3, size: 8, arraySize: 0
YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] [VdbStatement] value = 141090
YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] [Vdb :: IsRecoverableErrorCode] Unable to recover from 22001:1
YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] [VdbStatement] SQLError was thrown: "ODBC error: (22001) - ERROR: value too long for type character varying(255);
YYYY-MM-DDTHH:MM:SSZ error vpxd[1244641] [Originator@6876 sub=Default opID=HB-host-#######-305ebb82] An unrecoverable problem has occurred, stopping the VMware VirtualCenter service. Error: Error [VdbODBCError] (-1) "ODBC error: (22001) - ERROR: value too long for type character varying (1000);
com. vmware. vapi.std.errors.alreadv exists

Resolution

1.Unmount the ISO from the identified VMs. If unmounting fails while a VM is powered on, the ISO must be unmounted with the VM powered off.

2. Alternately, we can manually disconnect the ESXi host (where the VM with ISO resides) from the VCDB.

Steps:

1) Take an SSH session to the vCenter server Appliance and run below commands:

/opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres

select ID from VPX_ENTITY where name ='<esxi host name>';

update vpx_host set enabled = 0 where id = <host-id>;

2) Once the host is disconnected, restart vCenter services:

service-control --stop --all && service-control --start --all