Is there a list of server error codes for IIS BITS Uploads or a definition for 0x80070585 ("Invalid Index")?


I've got IIS 8.5 running on a couple of servers with BITS uploads enabled on a virtual directory. Looking through the logs, I see several different sorts of errors where it says (bits_error:{GUID},500,0x80070070) or some other error code. I'm able to match these to Error Descriptions on the client side using the PowerShell Get-BitsTransfer cmdlet and accessing the ErrorDescription attribute, but only if I happen to be the client encountering the error.

The specific codes I'm seeing are

  • 0x800703E3
  • 0x80070070
  • 0x80070005 - I'm assuming this is E_ACCESSDENIED
  • 0x8020001F - BG_E_SESSION_NOT_FOUND, at least on client side
  • 0x80070585 - I've confirmed this has a description of "invalid index", but can't seem to locate any information giving more context. (I think this particular server has a configuration problem that I can't put my finger on, since no uploads to it are working. The other errors are from the server that "works.")

I'm sure there are more. BitsMsg.h includes some of the common ones.

Any pointers to more details on the full list of error codes for BITS_POST entries in the IIS log files would be appreciated.

Update: Using Failed Request Tracing, I'm able to see a bit more information on the Invalid Index error (0x80070585). I don't see any activity on the virtual directory in SysInternals Process Monitor, nor do I see any handles open to that directory on the machine when using Handle. However, I've verified that the credentials stored to bind to that Virtual Directory in IIS Manager are working, and when I do a Test Connection, I see in procmon that INetMgr.exe has indeed accessed the local directory I expected it to. Anyway, here's the interesting bit from the trace file. It seems like we're getting to the BITS Service dll and choking inside it.



ModuleName="IsapiModule", Notification="EXECUTE_REQUEST_HANDLER", 
HttpStatus="500", HttpReason="Internal Server Error", 
HttpSubStatus="0", ErrorCode="The operation completed successfully.(0x0)",

GENERAL_SET_RESPONSE_HEADER HeaderName="Pragma", HeaderValue="no-cache", Replace="false" 14:20:19.559 
GENERAL_SET_RESPONSE_HEADER HeaderName="BITS-packet-type", HeaderValue="Ack", Replace="false" 14:20:19.559 
GENERAL_SET_RESPONSE_HEADER HeaderName="BITS-Error", HeaderValue="0x80070585", Replace="false" 14:20:19.559 
GENERAL_SET_RESPONSE_HEADER HeaderName="BITS-Error-Context", HeaderValue="0x5", Replace="false" 14:20:19.559 
GENERAL_SET_RESPONSE_HEADER HeaderName="Content-Length", HeaderValue="0", Replace="false" 14:20:19.559 

One last clue is that for the entries in the log where I'm seeing the error 0x80070585, there's no job GUID listed after bits_error. It's just (bits_error:,500,0x80070585). It's as if the desired remote path for the upload is coming across, but it fails very early in the upload protocol.

Update 2: There's a potentially related Windows Update error code SUS_E_INVALIDINDEX a.k.a. SUS_S_ALREADY_UNINSTALLED, which means "The update to be uninstalled is already not installed -- An attempt was made to use an invalid index." Since Windows Update uses the BITS protocol, maybe the index they're talking about is a file index into the job. However, BITS upload jobs only ever have at most one file, and the hex value for that one is 0x80240007.

See also WU_E_INVALIDINDEX and this StackOverflow answer.

asked on Server Fault May 18, 2015 by Jay Carlton • edited May 23, 2017 by Community

0 Answers

Nobody has answered this question yet.

User contributions licensed under CC BY-SA 3.0