]> git.sur5r.net Git - openldap/blob - doc/guide/admin/appendix-ldap-result-codes.sdf
allow to customize the error code in case of constraint violation
[openldap] / doc / guide / admin / appendix-ldap-result-codes.sdf
1 # $OpenLDAP$
2 # Copyright 2007 The OpenLDAP Foundation, All Rights Reserved.
3 # COPYING RESTRICTIONS APPLY, see COPYRIGHT.
4
5 H1:  LDAP Result Codes
6
7 For the purposes of this guide, we have incorporated the standard LDAP result 
8 codes from {{Appendix A.  LDAP Result Codes}} of rfc4511. A copy of which can 
9 be found in {{F:doc/rfc}} of the OpenLDAP source code.
10
11 We have expanded the description of each error in relation to the OpenLDAP 
12 toolsets.
13
14 H2:  Non-Error Result Codes
15
16 These result codes (called "non-error" result codes) do not indicate
17 an error condition:
18
19 >        success (0),
20 >        compareFalse (5),
21 >        compareTrue (6),
22 >        referral (10), and
23 >        saslBindInProgress (14).
24
25 The {{success}}, {{compareTrue}}, and {{compareFalse}} result codes indicate
26 successful completion (and, hence, are referred to as "successful"
27 result codes).
28
29 The {{referral}} and {{saslBindInProgress}} result codes indicate the client
30 needs to take additional action to complete the operation.
31
32 H2:  Result Codes
33
34 Existing LDAP result codes are described as follows:
35
36 H2: {{success (0)}}
37
38 Indicates the successful completion of an operation.  
39
40 Note: this code is not used with the Compare operation.  See {{SECT:compareFalse (5)}} 
41 and {{SECT:compareTrue (6)}}.
42
43 H2: {{operationsError (1)}}
44
45 Indicates that the operation is not properly sequenced with
46 relation to other operations (of same or different type).
47
48 For example, this code is returned if the client attempts to
49 StartTLS [RFC4346] while there are other uncompleted operations
50 or if a TLS layer was already installed.
51
52 H2: {{protocolError (2)}}
53
54 Indicates the server received data that is not well-formed.
55
56 For Bind operation only, this code is also used to indicate
57 that the server does not support the requested protocol
58 version.
59
60 For Extended operations only, this code is also used to
61 indicate that the server does not support (by design or
62 configuration) the Extended operation associated with the
63 {{requestName}}.
64
65 For request operations specifying multiple controls, this may
66 be used to indicate that the server cannot ignore the order
67 of the controls as specified, or that the combination of the
68 specified controls is invalid or unspecified.
69
70 H2: {{timeLimitExceeded (3)}}
71
72 Indicates that the time limit specified by the client was
73 exceeded before the operation could be completed.
74
75 H2: {{sizeLimitExceeded (4)}}
76
77 Indicates that the size limit specified by the client was
78 exceeded before the operation could be completed.
79
80 H2: {{compareFalse (5)}}
81
82 Indicates that the Compare operation has successfully
83 completed and the assertion has evaluated to FALSE or
84 Undefined.
85
86 H2: {{compareTrue (6)}}
87
88 Indicates that the Compare operation has successfully
89 completed and the assertion has evaluated to TRUE.
90
91 H2: {{authMethodNotSupported (7)}}
92
93 Indicates that the authentication method or mechanism is not
94 supported.
95
96 H2: {{strongerAuthRequired (8)}}
97
98 Indicates the server requires strong(er) authentication in
99 order to complete the operation.
100
101 When used with the Notice of Disconnection operation, this
102 code indicates that the server has detected that an
103 established security association between the client and
104 server has unexpectedly failed or been compromised.
105
106 H2: {{referral (10)}}
107
108 Indicates that a referral needs to be chased to complete the
109 operation (see Section 4.1.10).
110
111 H2: {{adminLimitExceeded (11)}}
112
113 Indicates that an administrative limit has been exceeded.
114
115 H2: {{unavailableCriticalExtension (12)}}
116
117 Indicates a critical control is unrecognized (see Section
118 4.1.11).
119
120 H2: {{confidentialityRequired (13)}}
121
122 Indicates that data confidentiality protections are required.
123
124 H2: {{saslBindInProgress (14)}}
125
126 Indicates the server requires the client to send a new bind
127 request, with the same SASL mechanism, to continue the
128 authentication process (see Section 4.2).
129
130 H2: {{noSuchAttribute (16)}}
131
132 Indicates that the named entry does not contain the specified
133 attribute or attribute value.
134
135 H2: {{undefinedAttributeType (17)}}
136
137 Indicates that a request field contains an unrecognized
138 attribute description.
139
140 H2: {{inappropriateMatching (18)}}
141
142 Indicates that an attempt was made (e.g., in an assertion) to
143 use a matching rule not defined for the attribute type
144 concerned.
145
146 H2: {{constraintViolation (19)}}
147
148 Indicates that the client supplied an attribute value that
149 does not conform to the constraints placed upon it by the
150 data model.
151
152 For example, this code is returned when multiple values are
153 supplied to an attribute that has a SINGLE-VALUE constraint.
154
155 H2: {{attributeOrValueExists (20)}}
156
157 Indicates that the client supplied an attribute or value to
158 be added to an entry, but the attribute or value already
159 exists.
160
161 H2: {{invalidAttributeSyntax (21)}}
162
163 Indicates that a purported attribute value does not conform
164 to the syntax of the attribute.
165
166 H2: {{noSuchObject (32)}}
167
168 Indicates that the object does not exist in the DIT.
169
170 H2: {{aliasProblem (33)}}
171
172 Indicates that an alias problem has occurred.  For example,
173 the code may used to indicate an alias has been dereferenced
174 that names no object.
175
176 H2: {{invalidDNSyntax (34)}}
177
178 Indicates that an LDAPDN or RelativeLDAPDN field (e.g., search
179 base, target entry, ModifyDN newrdn, etc.) of a request does
180 not conform to the required syntax or contains attribute
181 values that do not conform to the syntax of the attribute's
182 type.
183
184 H2: {{aliasDereferencingProblem (36)}}
185
186 Indicates that a problem occurred while dereferencing an
187 alias.  Typically, an alias was encountered in a situation
188 where it was not allowed or where access was denied.
189
190 H2: {{inappropriateAuthentication (48)}}
191
192 Indicates the server requires the client that had attempted
193 to bind anonymously or without supplying credentials to
194 provide some form of credentials.
195
196 H2: {{invalidCredentials (49)}}
197
198 Indicates that the provided credentials (e.g., the user's name
199 and password) are invalid.
200
201 H2: {{insufficientAccessRights (50)}}
202
203 Indicates that the client does not have sufficient access
204 rights to perform the operation.
205
206 H2: {{busy (51)}}
207
208 Indicates that the server is too busy to service the
209 operation.
210
211 H2: {{unavailable (52)}}
212
213 Indicates that the server is shutting down or a subsystem
214 necessary to complete the operation is offline.
215
216 H2: {{unwillingToPerform (53)}}
217
218 Indicates that the server is unwilling to perform the
219 operation.
220
221 H2: {{loopDetect (54)}}
222
223 Indicates that the server has detected an internal loop (e.g.,
224 while dereferencing aliases or chaining an operation).
225
226 H2: {{namingViolation (64)}}
227
228 Indicates that the entry's name violates naming restrictions.
229
230 H2: {{objectClassViolation (65)}}
231
232 Indicates that the entry violates object class restrictions.
233
234 H2: {{notAllowedOnNonLeaf (66)}}
235
236 Indicates that the operation is inappropriately acting upon a
237 non-leaf entry.
238
239 H2: {{notAllowedOnRDN (67)}}
240
241 Indicates that the operation is inappropriately attempting to
242 remove a value that forms the entry's relative distinguished
243 name.
244
245 H2: {{entryAlreadyExists (68)}}
246
247 Indicates that the request cannot be fulfilled (added, moved,
248 or renamed) as the target entry already exists.
249
250 H2: {{objectClassModsProhibited (69)}}
251
252 Indicates that an attempt to modify the object class(es) of
253 an entry's 'objectClass' attribute is prohibited.
254
255 For example, this code is returned when a client attempts to
256 modify the structural object class of an entry.
257
258 H2: {{affectsMultipleDSAs (71)}}
259
260 Indicates that the operation cannot be performed as it would
261 affect multiple servers (DSAs).
262
263 H2: {{other (80)}}
264
265 Indicates the server has encountered an internal error.