DataFlux Data Management Studio 2.6: User Guide

Return Codes

The use of the AddressDoctor engine may result in error conditions signaled via return codes.

All API functions return an AD_I32 (32 bit signed integer) return code value:

The return value must always be checked for by the calling logic. While it informs about fundamental errors, the actual validation results are returned via separate API functions.

Following are the most common error return codes, including an explanation:

Return Codes Explanation
0 OK, no error
Warnings the operation was completed, but maybe with an unexpected result:
1 The SetConfig.xml contained at least one corrupt unlock code
2 The SetConfig.xml contained at least one expired unlock code
3 The SetConfig.xml listed at least one database file which was not found
4 The SetConfig.xml listed at least one corrupt database file
5 The SetConfig.xml listed at least one database with a not supported version
6 The SetConfig.xml listed at least one database which is not supported (i.e. DEU CERTIFIED)
7 No valid unlock code for a database file
8 The SetConfig.xml listed at least one database at least two times
9 The MaxMemoryUsageMB setting in SetConfig.xml was too small to fulfill all preloading settings and/or the CacheSize setting
10 One of the unlock codes is not meant to be used on the current platform/OS. The unlock code is still considered as valid
100 An input element or line which already had content was overwritten
101 The AddressComplete input has too many lines, extra lines will be ignored for further processing
200 The output buffer is too small, the output was written, but truncated
201 At least one character of the output could not be encoded in the chosen encoding, these characters were replaced by an underscore ('_')
300 The engine usage period has expired
301 The unlock code for a database file has expired
400 Address lines and/or Address Complete were given on input; this part of the input was ignored
401 More than 10 lines were given via FormattedAddressLines or AddressComplete as input; the lines beyond 11 were ignored
900 No database at all was found, probably because the path was wrong
901 No database at all was opened, probably because the path was wrong and/or no valid unlock code was given
902 Error while attempting to open at least one of the extra CASS DBs


Following are the most common error return codes when the requested operation was not executed:

Return Codes Explanation
1000 A pointer parameter was NULL
1001 A function parameter was 0
1002 A NULL pointer to an object was used (not relevant for C API)
1003 Two XMLs were given (as string and within a file), only one must be given
1004 The output buffer size is not valid (i.e. 0)
1005 Buffer misalignment, an AD_WCHAR* points to an odd address
1100 A parameter is out of range or illegal
1101 An XML string is invalid
1200 The character sequence of a string is not valid (i.e. contains control codes or does violate some constraint)
1201 The encoding parameter did not match the character size of the API call, i.e. UCS2 (16 bit) vs. char (8 bit)
1300 No SetConfig.xml was given as parameter for AD_Initialize
1301 The engine has already been initialized
1302 AD_DeInitialize() failed because not all AddressObjects have been released
1400 No AddressObject is available (all AddressObject handles have already been obtained via AD_GetAddressObject())
1401 The passed AddressObject handle is not valid
1500 A database file has not been found
1501 A database file is invalid/corrupt
1502 No valid unlock code for a database file
1503 A database file has a non-supported version.
1700 The country could not be identified
1800 Results are available, for this reason no AO modification is allowed
1801 XML and direct API calls were used intermixed when setting the input data of an AddressObject
1802 AD_Process() has not been called successfully, no result is available
1803 The attempted operation was invalid, i.e. trying to set incompatible address elements
1900 The result index parameter is out of range (must be >= 1)
1901 The output buffer is too small to hold the result, no output was written


Critical Errors, where no further calls, except possibly AD_Initialize() or AD_DeInitialize() should be made to the engine use the following codes:

Return Codes Explanation
-1300 The engine has not yet been initialized, need to call AD_Initialize()
-1600 No valid unlock code was given
-1601 The engine usage period has expired
-1602 A clock inconsistency has been detected
-9900 A memory allocation request failed
-9901 A file operation failed


Very Critical Errors, should occur only under highly adverse circumstances. No further calls, except possibly AD_DeInitialize() should be made to the engine - please report that you actually encountered one of these errors:

Return Codes Explanation
-10000 Some unknown exception has been thrown; this event should never occur
-10001 Some internal assertion has failed; this event should never occur
-10002 Some internal error has been encountered; this event should never occur

Documentation Feedback: yourturn@sas.com
Note: Always include the Doc ID when providing documentation feedback.

Doc ID: dfDMStd_Task_World2_ReturnCodes.html