SharePoint crawls error out with : The protocol handler cannot be found. Check that the handler has been installed. (0x80040d1a)

This is an interesting one seen with a customer where when we try crawl  a SharePoint web -application  we get the error , as the Error message & resolution steps are

 

The protocol handler cannot be found. Check that the handler has been installed.   (0x80040d1a)         

 

 

clip_image001

 

# We enabled VerboseEX logging and collected the logs when kicking a full crawl which shows below error:

 

08/18/2015 11:52:38.02 mssearch.exe (0x131C)   0x18D0 SharePoint Server Search               Crawler:Gatherer Plugin cd11      Warning               The start address https://intranet.contoso.com:3313  cannot be crawled.  Context: Application 'Search_Service_Application', Catalog 'Portal_Content'  Details:  The protocol handler cannot be found. Check that the handler has been installed.   (0x80040d1a)             

 

From the event logs we saw below error as well:

Failed to load protocol handler OSearch15.STS3Handler.1. Error description: The parameter is incorrect

 

Confirmed that OSearch15.STS3Handler.1. is present in below registry keys and have correct full control permission:

-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\15.0\Search\Applications\3abd870a-9086-4a79-b6a6-6523911bf3f3-crawl-0\Gather\Portal_Content\Protocols\Sts3

-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0FF1CE15-0010-0000-0000-000000000000}\ProgID

 

 # mssph.dll is the srch dll responsible for protocols

 

We can register the .dll again by  removing  the protocol folder from registry and check if it comes back up once we register the DLL again .

 

In my environment:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\15.0\Search\Applications\a1d3dc68-8d01-4ddf-8a50-5e6656d257d6-crawl-0\Gather\Portal_Content\Protocols

 

I will be exporting the key and deleting the same. Once that is done will register the dll using

 

regsvr32 "C:\Program Files\Microsoft Office Servers\15.0\Bin\mssph.dll"  and check if protocols come back. If they do, then we can try this as an action plan

 

 

Here is how we fixed it

 

#  After a lot of troubleshooting , we finally found the issue to be a Bad Proxy configuration for the crawl account . Where the separate URL's did not have the  semicolon ; between different url's .

 

# This can be seen in  IE or via a Netsh.command

 

 Netsh Winhhtp Show proxy

 

 

# Once we fixed the Proxy configuration the error went away . So basically the  error in the Event viewer  & the  ULS is bit misleading , but the cause is a Bad Proxy configuration  due to which Winhttp returns  an invalid argument  exception .

 

 

Note : You can clear the Proxy configuration  to  confirm the behavior temporarily , Also need to keep in mind that if this is configured via a Group policy , the configuration will be  applied back at  next refresh

 

1. From IE settings

2. Netsh Winhhtp Reset Proxy

 

Post by : Rajan Kapoor [MSFT]