i am quite new to icinga2, but i had a problem for weeks i could not solve, even with the informations provided here.
The error is: "Failed to format error message, last error was: 2147954402" while using check_updates under Windows. Just a few servers (Server 2008 and 2012 R2) showed this problem and more or less coincidently i found a solution, which i want to share here.
First thing you have to know is that the error code "2147954402" means "WinHTTP_Timeout" as i learned during my researches.
This meaning brought me to the idea to reset the proxy configuration of the problematic servers via command line:
"netsh winhttp reset proxy"
Then restart the icinga2 and nsclient services on the server, after that, you can set your proxy settings again, if needed:
"netsh winhttp import proxy source=ie" or "netsh winhttp set proxy proxyname:port" (use /? for help with the correct command).
Then restart both services again and now the error should disappear and check_update works correct.