2.2 LDAP Server Return Codes

The LDAP server sets the following return codes.

Table 2-2 LDAP Server Return Codes

Hex

Decimal

Constant: Description

0x00

0

LDAP_SUCCESS: Indicates the requested client operation completed successfully.

0x01

1

LDAP_OPERATIONS_ERROR: Indicates an internal error. The server is unable to respond with a more specific error and is also unable to properly respond to a request. It does not indicate that the client has sent an erroneous message.

In NDS 8.3x through NDS 7.xx, this was the default error for eDirectory errors that did not map to an LDAP error code. To conform to the new LDAP drafts, NDS 8.5 uses 80 (0x50) for such errors.

0x02

2

LDAP_PROTOCOL_ERROR: Indicates that the server has received an invalid or malformed request from the client.

0x03

3

LDAP_TIMELIMIT_EXCEEDED: Indicates that the operation's time limit specified by either the client or the server has been exceeded. On search operations, incomplete results are returned.

0x04

4

LDAP_SIZELIMIT_EXCEEDED: Indicates that in a search operation, the size limit specified by the client or the server has been exceeded. Incomplete results are returned.

0x05

5

LDAP_COMPARE_FALSE: Does not indicate an error condition. Indicates that the results of a compare operation are false.

0x06

6

LDAP_COMPARE_TRUE: Does not indicate an error condition. Indicates that the results of a compare operation are true.

0x07

7

LDAP_AUTH_METHOD_NOT_SUPPORTED: Indicates that during a bind operation the client requested an authentication method not supported by the LDAP server.

0x08

8

LDAP_STRONG_AUTH_REQUIRED: Indicates one of the following:

  • In bind requests, the LDAP server accepts only strong authentication.

  • In a client request, the client requested an operation such as delete that requires strong authentication.

  • In an unsolicited notice of disconnection, the LDAP server discovers the security protecting the communication between the client and server has unexpectedly failed or been compromised.

0x09

9

Reserved.

0x0A

10

LDAP_REFERRAL: Does not indicate an error condition. In LDAPv3, indicates that the server does not hold the target entry of the request, but that the servers in the referral field may.

0x0B

11

LDAP_ADMINLIMIT_EXCEEDED: Indicates that an LDAP server limit set by an administrative authority has been exceeded.

0x0C

12

LDAP_UNAVAILABLE_CRITICAL_EXTENSION: Indicates that the LDAP server was unable to satisfy a request because one or more critical extensions were not available. Either the server does not support the control or the control is not appropriate for the operation type.

0x0D

13

LDAP_CONFIDENTIALITY_REQUIRED: Indicates that the session is not protected by a protocol such as Transport Layer Security (TLS), which provides session confidentiality.

0x0E

14

LDAP_SASL_BIND_IN_PROGRESS: Does not indicate an error condition, but indicates that the server is ready for the next step in the process. The client must send the server the same SASL mechanism to continue the process.

0x0F

15

Not used.

0x10

16

LDAP_NO_SUCH_ATTRIBUTE: Indicates that the attribute specified in the modify or compare operation does not exist in the entry.

0x11

17

LDAP_UNDEFINED_TYPE: Indicates that the attribute specified in the modify or add operation does not exist in the LDAP server's schema.

0x12

18

LDAP_INAPPROPRIATE_MATCHING: Indicates that the matching rule specified in the search filter does not match a rule defined for the attribute's syntax.

0x13

19

LDAP_CONSTRAINT_VIOLATION: Indicates that the attribute value specified in a modify, add, or modify DN operation violates constraints placed on the attribute. The constraint can be one of size or content (string only, no binary).

0x14

20

LDAP_TYPE_OR_VALUE_EXISTS: Indicates that the attribute value specified in a modify or add operation already exists as a value for that attribute.

0x15

21

LDAP_INVALID_SYNTAX: Indicates that the attribute value specified in an add, compare, or modify operation is an unrecognized or invalid syntax for the attribute.

 

22-31

Not used.

0x20

32

LDAP_NO_SUCH_OBJECT: Indicates the target object cannot be found. This code is not returned on following operations:

  • Search operations that find the search base but cannot find any entries that match the search filter.

  • Bind operations.

0x21

33

LDAP_ALIAS_PROBLEM: Indicates that an error occurred when an alias was dereferenced.

0x22

34

LDAP_INVALID_DN_SYNTAX: Indicates that the syntax of the DN is incorrect. (If the DN syntax is correct, but the LDAP server's structure rules do not permit the operation, the server returns LDAP_UNWILLING_TO_PERFORM.)

0x23

35

LDAP_IS_LEAF: Indicates that the specified operation cannot be performed on a leaf entry. (This code is not currently in the LDAP specifications, but is reserved for this constant.)

0x24

36

LDAP_ALIAS_DEREF_PROBLEM: Indicates that during a search operation, either the client does not have access rights to read the aliased object's name or dereferencing is not allowed.

 

37-47

Not used.

0x30

48

LDAP_INAPPROPRIATE_AUTH: Indicates that during a bind operation, the client is attempting to use an authentication method that the client cannot use correctly. For example, either of the following cause this error:

  • The client returns simple credentials when strong credentials are required.

  • The client returns a DN and a password for a simple bind when the entry does not have a password defined.

0x31

49

LDAP_INVALID_CREDENTIALS: Indicates that during a bind operation one of the following occurred:

  • The client passed either an incorrect DN or password.

  • The password is incorrect because it has expired, intruder detection has locked the account, or some other similar reason.

0x32

50

LDAP_INSUFFICIENT_ACCESS: Indicates that the caller does not have sufficient rights to perform the requested operation.

0x33

51

LDAP_BUSY: Indicates that the LDAP server is too busy to process the client request at this time but if the client waits and resubmits the request, the server may be able to process it then.

0x34

52

LDAP_UNAVAILABLE: Indicates that the LDAP server cannot process the client's bind request, usually because it is shutting down.

0x35

53

LDAP_UNWILLING_TO_PERFORM: Indicates that the LDAP server cannot process the request because of server-defined restrictions. This error is returned for the following reasons:

  • The add entry request violates the server's structure rules.

  • The modify attribute request specifies attributes that users cannot modify.

  • Password restrictions prevent the action.

  • Connection restrictions prevent the action.

0x36

54

LDAP_LOOP_DETECT: Indicates that the client discovered an alias or referral loop, and is thus unable to complete this request.

 

55-63

Not used.

0x40

64

LDAP_NAMING_VIOLATION: Indicates that the add or modify DN operation violates the schema's structure rules. For example,

  • The request places the entry subordinate to an alias.

  • The request places the entry subordinate to a container that is forbidden by the containment rules.

  • The RDN for the entry uses a forbidden attribute type.

0x41

65

LDAP_OBJECT_CLASS_VIOLATION: Indicates that the add, modify, or modify DN operation violates the object class rules for the entry. For example, the following types of request return this error:

  • The add or modify operation tries to add an entry without a value for a required attribute.

  • The add or modify operation tries to add an entry with a value for an attribute which the class definition does not contain.

  • The modify operation tries to remove a required attribute without removing the auxiliary class that defines the attribute as required.

0x42

66

LDAP_NOT_ALLOWED_ON_NONLEAF: Indicates that the requested operation is permitted only on leaf entries. For example, the following types of requests return this error:

  • The client requests a delete operation on a parent entry.

  • The client request a modify DN operation on a parent entry.

0x43

67

LDAP_NOT_ALLOWED_ON_RDN: Indicates that the modify operation attempted to remove an attribute value that forms the entry's relative distinguished name.

0x44

68

LDAP_ALREADY_EXISTS: Indicates that the add operation attempted to add an entry that already exists, or that the modify operation attempted to rename an entry to the name of an entry that already exists.

0x45

69

LDAP_NO_OBJECT_CLASS_MODS: Indicates that the modify operation attempted to modify the structure rules of an object class.

0x46

70

LDAP_RESULTS_TOO_LARGE: Reserved for CLDAP.

0x47

71

LDAP_AFFECTS_MULTIPLE_DSAS: Indicates that the modify DN operation moves the entry from one LDAP server to another and thus requires more than one LDAP server.

 

72-79

Not used.

0x50

80

LDAP_OTHER: Indicates an unknown error condition. This is the default value for eDirectory error codes which do not map to other LDAP error codes.