Troubleshooting Protocol Errors During Database Engine Startup

When the SQL Server Database Engine encounters a protocol-related error during startup, an error message will be written in the SQL Server error log and the Windows Event Log in the following form:

"Error: 17182, Severity: 16, State: 1."

"TDSSNIClient initialization failed with error <x>, status code <y>."

In this message, <x> is the underlying error code that is returned by the communication or security subsystem, and <y> is an internal SQL Server protocol error state.

Note

The shared-memory protocol and the named-pipes protocol share some aspects of their implementation. If one protocol fails, this can cause the other to fail as well. If the protocol stated in the error message is disabled but the error persists, try starting up again with both shared memory and named pipes disabled.

Interpreting the Error Code

The underlying error code, <x>, is typically an error code that is returned by the Windows network layer or by a Security Support Provider Interface (SSPI) call. For Windows network error codes, running the net helpmsg command might help interpret the code. SSPI error codes are not as easy to decipher. You may have to search the Microsoft knowledge base or, if the operating-system SDK is installed, examine the WinError.h file.

Interpreting the Protocol Error Status Code

The SQL Server protocol error states are listed in the following table. Note that the most of the error states indicate an internal error condition, but the specific value will provide insight as to the particular protocol area under which the error falls. For example, if the value is between 7 and 30 (0x0A and 0x1E), the error stems from TCP/IP processing. Status codes in the error message are presented in hexadecimal format. In the following table the decimal equivalent is provided for clarity.

Status code range in hexadecimal format

Status code range in decimal format

Protocol area

0x03

3

Shared memory

0x07-0x1E

7-30

TCP/IP

0x1F-0x23

31-35

Dedicated Administrator Connection (DAC)

0x35

53

Named pipes

0x36

54

Virtual Interface Adapter (VIA)

0x38

56

Secure Sockets Layer (SSL)

0x40-0x4F

64-79

Shared memory

0x50-0x5F

80-95

Named pipes

0x60-0x6F

96-111

VIA

0x70-0x7F

112-127

HTTP

0x80-0x8F

128-143

SSL

0x90-0x9F

144-159

General

The following table lists some common error codes.

Status code

Description

0x03

Error starting shared memory support

0x04

All protocols disabled

0x0A

Unable to initialize the TCP/IP listener

0x1C

Server configured to listen on a specific IP address in a cluster environment

0x1E

Duplicate IP address detected in network

0x35

Error starting named pipe support

0x36

Error starting VIA support

0x38

Error obtaining or using the certificate for SSL

0x3A

Unable to initialize the communication listeners

0x40

Unable to initialize the Shared Memory listener

0x50

Unable to initialize the Named Pipe listener

0x60

Unable to initialize the VIA listener

0x70

Unable to initialize the HTTP listener

0x80

Unable to initialize SSL support

Examples

The following is an example of a typical error that occurs during startup: "TDSSNIClient initialization failed with error 0x80092004, status code 0x38."

The value 0x80092004 is an SSPI error code that translates to CRYPT_E_NOT_FOUND. 0x38 is an internal error code that signifies that the SQL Server communications layer could not initialize the listener. This error was generated by SSL because it could not locate the certificate.

Errors Returned When All Protocols Are Disabled

You might receive the following errors occur when all protocols are disabled:

  • "Error: 17182, Severity: 16, State: 1."

    "TDSSNIClient initialization failed with error 0xd, status code 0x4."

  • "Error: 17182, Severity: 16, State: 1."

    "TDSSNIClient initialization failed with error 0xd, status code 0x1."

  • "Error: 17826, Severity: 18, State: 3."

    "Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the error log."

  • "Error: 17120, Severity: 16, State: 1."

    "SQL Server could not spawn FRunCM thread. Check the SQL Server error log and the Windows event logs for information about possible related problems."