I was working with a client the other day who was having problems with search. They had a SharePoint site that search couldn’t crawl. The first thing to check was obviously permissions and those all worked fine. I started digging into it and found it was the error: Error HRESULT E_FAIL has been returned from a call to a COM component.
When looking for a fix I ran across this post in the TechNet forums that gave me the answer. Your web.config file may have identity impersonate=false. Sure enough, I looked at the web.config and impersonate=false. I changed it to =true, performed an iisreset and reran the full crawl. Success!! The downside…it did indeed break a custom feature that was installed in the farm. So now we are on to fixing that problem.