Error Codes
Every job call returns an integer value: 0 means success, any other value an error (see Introduction). This page collects the error codes documented so far in a central place, grouped by meaning.
|
This overview is new and not yet complete. It contains only error codes that are described elsewhere in the documentation or derived from concrete implementations, and is extended continuously. The absence of a code does not mean it cannot occur. |
All codes are integer (INT) return values of the same mechanism. They are usually not job-specific but apply across the job calls (e.g. dms.XMLInsert, dms.XMLUpdate, dms.XMLImport, dms.GetResultList, check-in/check-out). The Code column lists the decimal return value (signed 32-bit integer). The Jobs column notes the triggers verified against a enaio® server.
1. Job-Dependent Specifics
The following observations were verified directly against a test server and should be considered when evaluating return values:
-
The same cause yields a different code depending on the job:
-
Unknown field: dms.XMLImport →
-24, dms.GetResultList →-1031. -
Unknown object type: dms.XMLImport →
-7, dms.GetResultList →-1030. -
Non-existent object when filling a portfolio: dms.AddPortfolio →
-22, dms.ModPortfolio →-1073for a document,-47for a folder (the rights check precedes the existence check).
-
-
dms.XMLImport reports XML structure errors as a generic
-1. The actual diagnosis is only available in theDMSResultbuffer, not in the return value. dms.GetResultList, in contrast, returns specific codes (-1016/-1029). -
Each server namespace has its own codes for parameter errors. The
dms.jobs return small, documented codes (-1024/-1025) or-1;std.,mng.,wfm.andkrn.*instead return large, HRESULT-style values (see Parameter Errors by Namespace). -
No-error cases: Some jobs still return
0for a functionally negative answer — the result is in the output value, not in the return value. Examples: dms.GetUserData and dms.IsUserData with an unknown name; dms.GetObjectTypeByID with anObjectIDthat does not exist (ObjectType=-1, no entry in the error stack); krn.VerifyPassword with a password that does not satisfy the password syntax rule (Matches = false); ado.ExecuteSQL with invalid SQL (return_code = 0and an empty result — the SQL error is swallowed, so error detection must not rely on the return value here); mng.GetUserRoles with an unknown, syntactically invalid or nullUserGUID(return_code = 0and an emptyResult— an empty result therefore does not necessarily mean "user has no system role"); lic.CheckLicense when none of the requested modules is available (Result=602, reason in the error stack, see Diagnostic Entries with Return Value0); lic.LicGetQueueStatus with unknown module labels (empty file). -
Functional rejection as an error code instead of an output value: krn.CheckUserAccount documents the verdicts "user unknown", "wrong password" and "account locked" as values of the output parameter
Action, but in practice returns them as error codes (-1042218023,-1042218021,-1042218019). A caller must therefore not checkActionalone. -
Configuration-dependent findings: dms.XMLMove can enforce a server-side configured target capacity (
-89when exceeded).-1012(moving a register into one of its own children) was not reproducible on the test server — the move was allowed withreturn_code = 0; this behaviour is therefore not guaranteed.
2. Parameter Errors by Namespace
Each server namespace returns its own codes for parameter errors, grouped by error class. The dms. jobs return small codes documented in this list; the other namespaces (std., mng., wfm., krn.*) instead return large, HRESULT-style values:
| Namespace | Parameter missing | Wrong parameter type | Value not supported |
|---|---|---|---|
|
|
|
— |
|
|
|
— |
|
|
|
— |
|
|
|
— |
|
|
— |
|
|
|
— |
— |
|
This table is not exhaustive. Other namespaces and jobs ( |
3. General Errors
| Code | Meaning | Jobs |
|---|---|---|
|
General error (not further specifiable). |
dms.XMLImport for XML structure errors (details only in the |
|
No cabinet specified. |
|
|
No register type specified. |
|
|
No document type specified. |
|
|
Required folder identification is missing. Server message: |
dms.XMLImport (document insert without |
|
Required document identification is missing. |
|
|
Required register identification is missing. |
|
|
Folder update failed. |
|
|
Document update failed. |
|
|
Register update failed. |
|
|
The field name could not be resolved. Server message: |
dms.XMLImport (unknown field) (verified) |
|
The value for the given field is not allowed. |
|
|
The specified object ID is invalid. |
|
|
The mandatory fields have not been filled in. Server message: |
dms.XMLImport (verified) |
|
The specified value does not match the type on the archive server. Server message: |
dms.XMLImport (invalid date/decimal value) (verified) |
|
A transfer parameter is incorrect or missing. |
dms.ModPortfolio (unknown portfolio ID) |
|
No index could be obtained from the server. |
|
|
No document list was specified. |
|
|
The requested functionality is not implemented in the current version. |
|
|
An error occurred while reading the object definitions. |
|
|
A system ID was specified but no foreign ID. |
|
|
An error occurred while parsing the XML text. Server message: |
dms.GetResultList (malformed XML / missing type attribute) (verified) |
|
An error occurred while validating the XML text. |
|
|
The XML text is incomplete. |
|
|
A job parameter is missing or has the wrong type. Server message: |
dms.GetObjectDetails (missing and wrong type), dms.GetObjectTypeByID, dms.RemoveStoredQuery, dms.IsUserData, dms.GetUserData (verified) |
|
The specified parameter value is invalid or missing. Server message: |
dms.GetResultList, dms.ExecuteStoredQuery, dms.GetStoredQuery (verified) |
|
More values were specified for a table field than there are columns. |
|
|
An error occurred while inserting the note objects/texts. Among other cases it appears when a text longer than 8000 characters is passed under database note storage (cause |
dms.XMLInsert, dms.XMLUpdate (verified) |
|
An XML element is unknown or incorrectly positioned. Server message: |
dms.GetResultList (verified) |
|
The job was cancelled by user request. |
|
|
The specified condition is invalid. |
|
|
An XML attribute is invalid. |
|
|
A required XML attribute is missing. |
|
|
The user data specifications are ambiguous. |
|
|
The query format is not supported. |
|
|
An expression has an invalid format. |
|
|
The section name is invalid. |
|
|
General error while reading the query. |
|
|
Unknown query type. |
|
|
The query could not be processed. |
|
|
The full-text query contains only words that are to be ignored. |
|
|
Insufficient memory is available. |
|
A GUID parameter marked as mandatory is empty ( |
||
|
Missing or wrong-type parameter in the |
|
Missing parameter ( |
mng.GetUserAttributes, mng.SetUserAttributes (call with only |
|
Missing argument, reported by the DMS engine. Server message: |
dms.RemoveStoredQuery (without |
|
Wrong parameter type ( |
mng.GetUserAttributes ( |
|
A supplied parameter value is invalid ( |
adm.ServerEventsEnumJobs (non-job-bound event), krn.VerifyPassword (empty |
|
|
Unsupported parameter value in the |
4. Object / Resource Not Found
| Code | Meaning | Jobs |
|---|---|---|
|
Specified cabinet unknown. |
|
|
Specified register type unknown. |
|
|
Specified document type unknown. Server message: |
dms.XMLImport (unknown object type) (verified) |
|
Required register identification is unknown. |
|
|
Required folder identification is unknown. |
|
|
Required document identification is unknown. |
|
|
The specified/required object is unknown. Server message: |
dms.XMLUpdate, dms.XMLDelete, dms.XMLMove ( |
|
The ID of the specified register does not exist on the archive server. |
|
|
The specified/required file does not exist. |
|
|
The specified value could not be found in the associated catalog. Server message: |
dms.XMLInsert (field value not in the assigned catalog) (verified) |
|
The specified owner could not be determined. |
|
|
The reference was not found. |
|
|
An object type was not found on the DMS server. Server message: |
dms.GetResultList (unknown object type) (verified) |
|
An object field was not found on the DMS server. Server message: |
dms.GetResultList (unknown field) (verified) |
|
The parent variant of the document could not be determined. |
|
|
The document variant could not be determined. Server message: |
dms.XMLImport ( |
|
The query was not found. Server message: |
dms.ExecuteStoredQuery, dms.GetStoredQuery, dms.RemoveStoredQuery (unknown query ID) (verified) |
|
The cabinet name could not be read. |
|
|
The document name could not be read. |
|
|
The register name could not be read. |
|
|
The location of the object could not be determined. |
|
|
The object could not be located in the DMS. |
dms.ModPortfolio (non-existent document in |
The specified login name is unknown. Server message: |
krn.CheckUserAccount (verified) |
|
The specified user was not found. Server message: |
mng.GetUserAttributes (unknown username or GUID in |
|
The specified registry entry does not exist. |
krn.REGetRegValue (verified) |
|
Error in the resource administration. Server message: |
lic.LicGetModuleInfo (verified); |
|
The given note does not exist. Server message: |
std.GetRemark, std.DeleteRemark (verified) |
5. Invalid State / Invalid Operation
| Code | Meaning | Jobs |
|---|---|---|
|
The specified register is not in the specified folder. |
|
|
The specified document type is not allowed in the specified cabinet. |
|
|
The document has already been archived. |
|
|
The document has no pages. |
|
|
Moving folders is not allowed. Server message: |
dms.XMLMove (moving a folder not allowed) (verified) |
|
The relationship between document and register is not allowed. Server message: |
dms.XMLImport (document at an invalid location); dms.XMLMove (target folder not found / target capacity exceeded) (verified) |
|
Reference documents cannot be moved without specifying a location. |
|
|
Document pages are not allowed. |
|
|
The key field is not unique. Server message: |
dms.XMLImport (key field combination not unique) (verified) |
|
The specified object is connected to a workflow process. |
|
|
The object is in the recycle bin. Server message: |
dms.XMLDelete (object already in recycle bin) (verified) |
|
The document is in a portfolio. |
|
|
The recursion depth is too large, the action was aborted. |
|
|
The target register is a child of the register to be moved. |
|
|
Pages cannot be added to a reference document. |
|
|
The document cannot reference another document because it has pages. |
|
|
The object type is invalid for this operation. |
|
|
Cascade deletion is not allowed, the object still has child objects. Server message: |
dms.XMLDelete (object still has child objects) (verified) |
|
Only documents may be checked in and out. Server message: |
dms.CheckOutDocument (target object is not a document) (verified) |
|
The document has been checked in. Server message: |
dms.UndoCheckOutDocument (document was not checked out) (verified) |
|
The document has been checked out. |
|
|
The document has been checked out to another user. |
|
|
The document has been checked out to another station. |
|
|
The document cannot be checked out because it has no pages. Server message: |
dms.CheckOutDocument (document without pages) (verified) |
|
The document is not in the workflow storage. |
|
|
The document is in the workflow storage. |
|
|
New variants may only be created for W-documents. |
|
|
A concurrent update of an object failed (outdated |
dms.XMLUpdate (verified) |
|
The copy of the object already exists at the specified location. |
|
|
The new variant was created but could not be set to 'Active'. |
|
|
Moving or linking objects is locked system-wide. |
|
|
The document already exists at the location. |
|
|
Copying objects with key fields is not allowed. |
|
|
'Error' was specified as the action for the hit count. |
dms.XMLImport (source comment) |
The user profile cannot be removed. Server message: |
mng.SetUserAttributes (verified) |
|
The given page number of a multi-field is outside the permitted range. Server message: |
dms.XMLInsert, dms.XMLUpdate (verified) |
|
Index data were specified for a document to be inserted without a type. Server message: |
dms.XMLInsert (verified) |
|
The main type is missing on a typeless insert. Server message: |
dms.XMLInsert (verified) |
|
The object type cannot be determined. Server message: |
dms.XMLDelete (verified) |
|
A note link with text was rejected. Server message: |
dms.XMLInsert, dms.XMLUpdate (verified) |
|
The XML job parameter was passed as a string instead of binary. Server message: |
dms.GetResultList and every job with an XML parameter (verified) |
|
A value of a text type was requested with |
dms.GetUserData, dms.GetConfValues (types |
|
A field named in the query does not exist on the object type. Triggered by an unknown |
dms.GetResultList (verified) |
|
The maximum field length was exceeded. Server message: |
dms.XMLInsert, dms.XMLUpdate (verified) |
|
The OS event already exists. Server message: |
dms.CreateOsEvent (return value |
6. Access Denied
| Code | Meaning | Jobs |
|---|---|---|
|
The user does not have the required rights on the archive server. |
dms.ModPortfolio (non-existent folder in |
|
An attempt was made to set a read-only field. |
|
|
A requested file could not be accessed. |
|
|
The specified system field cannot be changed by the user. |
|
|
It is not possible for the user to disable the rights check. |
|
|
The specified password is incorrect. Server message: |
krn.SessionChangePassword (wrong old password) (verified) |
The supplied password is invalid. Server message: |
krn.CheckUserAccount (verified) |
|
The user account is locked. Server message: |
krn.CheckUserAccount (verified) |
|
The calling user lacks system role |
krn.CheckUserAccount (verified); job calls using |
|
|
The new and old passwords are identical. |
|
|
Access to a system resource was denied. |
dms.GetObjectDetails (rights check before ID check) (observed) |
The LIS license is missing although OSFTS is used with |
||
The calling user lacks system role |
Modifying mng jobs for users and groups (e.g. mng.CreateUser); mng.GetUserRoles with the |
|
The calling user lacks system role |
krn.RunScript (verified) |
7. Collective Codes with the Cause in the Error Stack
Two operations check a user account without naming the reason for the rejection in the return value: the context switch via $$$SwitchContextUserName$$$ or $$$SwitchContextUserGUID$$$ (see Switching the User Context) and the login with krn.SessionLogin. Both return a collective code; why access failed is available in the error stack only.
| Code | Meaning | Jobs |
|---|---|---|
Collective code: the context switch is not possible. The code originates solely from resolving the |
Arbitrary jobs with a context switch — verified among others with mng.GetUserRoles, mng.GetUserList, krn.GetServerInfo and krn.VerifyPassword (verified) |
|
Collective code: the session login was refused. Server message: |
krn.SessionLogin (verified) |
7.1. Cause Codes in the Error Stack
The actual cause is carried by the first evaluable entry of the error stack (on the error stack see Introduction); entries without diagnostic value are listed under Entries Without Diagnostic Value and are to be skipped when evaluating.
| Code | Server Message | State of the User |
|---|---|---|
|
Does not exist or has been deleted (verified) |
|
|
Blocked ( |
|
|
Locked by failed logins; the |
|
|
Locked by failed logins, after a write with mng.SetUserAttributes has replaced the marker |
|
|
Validity expired ( |
|
|
Not yet valid ( |
|
The server message always says "User GUID", even when switching by user name:
The message is therefore unsuitable for recovering the addressed user. |
7.2. Entries Without Diagnostic Value
Every rejected response additionally contains entries that carry no indication of the cause. An evaluation of the error stack should skip them and treat the first remaining entry as the cause.
| Code | Content |
|---|---|
|
|
Empty message (verified) |
|
Memory statistics of the server process ( |
|
The order of the entries in the error stack was stable across all measurements but is not guaranteed. An evaluation should search the error stack for the known cause codes instead of relying on a fixed position. |
8. Diagnostic Entries with Return Value 0
Some jobs return 0 and still put entries into the error stack that explain a functionally negative finding or warn about a condition. These codes are not job failures; error handling that only checks the return value does not see them.
| Code | Meaning | Jobs |
|---|---|---|
The module has no license entry. Server message: |
lic.CheckLicense ( |
|
Unknown module label: the label is missing from the module catalog (osresources, |
lic.CheckLicense ( |
|
The license (type |
lic.CheckLicense ( |
|
Follow-up entry without information of its own. Server message: |
lic.CheckLicense (verified) |
|
Warning: the usage of a module has reached the warning threshold. Server message: |
lic.LicCheckThreshold (verified) |
|
Warning: notifying the administrator by e-mail is switched off in the configuration. Server message: |
lic.LicCheckThreshold (verified) |