config-state.json file results in Active Directory login failuresFailed to parse response received from connector".400 bad request - invalid username / password" when using Aria Automation API to authenticate as a domain userError: You do not have permission to access this page: /hc/####/authenticate/ or Error : See logs for detailsconnector.log and horizon.log in /opt/vmware/horizon/workspace/logs/ show the issue as:com.vmware.horizon.connector.utils.ServiceUtils - Failed to check service health: invalid MOL urlERROR (pool-4-thread-1) [;;;] com.vmware.horizon.connector.admin.service.impl.StartupDirectoryConfigService - could not take the backup as config-state.json file size is emptyThe config-state.json file stores connector configurations. File system instability, disk space exhaustion, or interrupted write processes can lead to corruption, characterized by missing mandatory values such as in the idp section where null values are present instead.
/hc/error as shown in the introduction section above, verify the Bind User/Password of the directory are correct.https://<vIDM_NODE_FQDN>/SAAS/login/0.IMPORTANT:
The config-state.json file is located in:
/usr/local/horizon/conf/states/<TENANT_NAME>/<WORKER_ID>/<WORKER_ID>.config-state.json in each <WORKER_ID> directory has to be checked.SSH to each VMware Identity Manager Appliance(s) as the root user, change directory into the tenant directory, and list all worker id sub-directories and their content:
cd /usr/local/horizon/conf/states/<TENANT_NAME>/
ls -lRReview this result to investigate how many files are corrupted, or need to be restored from backup, and their respective worker-id sub-directories.
Stop the horizon-workspace service only on the node where the config-state.json file is being recovered:
service horizon-workspace stopIf the current configuration file is not 0K in size, make a copy of it with the following command:
cp config-state.json config-state.json.1Replace the current configuration file with a copy of the latest stable backup (if multiple versions are present, e.g. _v1, _v2, _v2.1, _v2.2, then use _v2):
cp -p config-state.json.backup_<latest-stable-version> config-state.jsonConfirm the owner and group of the config-state.json is unchanged (horizon:www); if not, correct it with the following command:
chown horizon:www /usr/local/horizon/conf/states/<TENANT_NAME>/<WORKER_ID>/config-state.jsonConfirm the permissions of the config-state.json are unchanged; if not, correct them with the following command:
chmod 640 /usr/local/horizon/conf/states/<TENANT_NAME>/<WORKER_ID>/config-state.jsonNOTE:
config-state.json file does not get updated with directory information even after restoring from the older versions, recreate the affected directory from the UI.Start the horizon-workspace service by running the following command:
service horizon-workspace startIn the UI, navigate to Identity & Access Management > YOUR DIRECTORY > Sync Settings, then run through each tab and save the setting:
Above, if the "Groups" tab refuses to save due to an error regarding the Bind DN: return to the directory settings page, enter the Bind DN password, validate & save, then come back to save the remaining tabs in Sync Settings.
To avoid the issue from re-occurring, please apply KB 376193: vIDM root partition is full on one node of the cluster.
```