Skip to main content

i4scada Knowledge Base

BACnet Status Codes

Abstract

Check out this article and learn more details about the i4scada BACnet Status codes.

BACnet status codes are decoded according to the following tables:

BACSTAC_STATUS

BACSTAC_STATUS code

String

BACSTAC_STATUS_OK

OK

BACSTAC_STATUS_SERVICE_NOT_FOUND

Service not found

BACSTAC_STATUS_NOT_INITIALIZED

Not initialized

BACSTAC_STATUS_NOT_SUPPORTED

Not supported

BACSTAC_STATUS_REJECT

Reject

BACSTAC_STATUS_SERVICE_TIMEOUT

Service timeout

BACSTAC_STATUS_INVALID_PARAM

Invalid parameter

BACSTAC_STATUS_BUSY

Busy (BACstac Database is locked?)

BACSTAC_STATUS_ALREADY_EXISTS

Already exists

BACSTAC_STATUS_OUT_OF_MEMORY

Out of memory

BACSTAC_STATUS_OUT_OF_RESOURCES

Out of resources

BACSTAC_STATUS_DCC_DISABLED

Device Communication Control disabled

BACSTAC_STATUS_XMT_OVERFLOW

Transmit buffer overflow

BACSTAC_STATUS_RCV_OVERFLOW

Receive buffer overflow

BACSTAC_STATUS_STACK_OVERFLOW

Stack overflow

BACSTAC_STATUS_TIMEOUT

Timeout

BACSTAC_STATUS_ILLEGAL_RESPONSE

Illegal response

BACSTAC_STATUS_REQUEST_TOO_LONG

Request too long

BACSTAC_STATUS_RESPONSE_TOO_LONG

Response too long

BACSTAC_STATUS_INVALID_DATA_TYPE

Invalid data type

BACSTAC_STATUS_VAL_OUT_OF_RANGE

Value out of range

BACSTAC_STATUS_VAL_OUT_OF_SPACE

Value out of space

BACSTAC_STATUS_SEG_NOT_SUPPORTED

Segmentation not supported

BACSTAC_STATUS_SEG_ERROR

Segmentation error

BACSTAC_STATUS_BACNET_ERROR

BACnet error

BACSTAC_STATUS_BACNET_REJECT

BACnet reject

BACSTAC_STATUS_BACNET_ABORT

BACnet abort

BACSTAC_STATUS_INVALID_PACKET

Invalid packet

BACSTAC_STATUS_INCONSISTENT_TAGS

Inconsistent tags

BACSTAC_STATUS_DRV_NOT_FOUND

Driver didn't find Packet Driver

BACSTAC_STATUS_DRV_NOT_SUPPORTED

Driver doesn't support Packet Driver

BACSTAC_STATUS_DRV_CANT_INIT

Driver can't initialize

BACSTAC_STATUS_DRV_CANT_SEND

Driver can't send

BACSTAC_STATUS_DNET_UNREACHABLE

Destination network is unreachable

BACSTAC_STATUS_CANNOT_BIND_TO_PORT

Cannot bind to port

BACSTAC_STATUS_UNKNOWN_ERROR

Unknown error

BACSTAC_STATUS_BAD_CONFIG

Bad configuration (APDU properties?)

BACSTAC_STATUS_DATATYPE_MISALIGNMENT

Pointer is not sufficiently aligned for this data type

BACSTAC_STATUS_TRANSACTION_ABORTED

Transaction aborted

BACSTAC_STATUS_INCONSISTENT_VERSIONS

Inconsistent BACstac versions

BACSTAC_STATUS_DEVICE_UNREACHABLE

Device unreachable

BACSTAC_STATUS_DNET_IS_LOCAL

Use a local DNET as remote

BACSTAC_STATUS_BACNET_ERROR

BACSTAC_STATUS_BACNET_ERROR appends the following Error Classes and Error Codes.

ERROR CLASSES

ERROR_CLASS/ERROR_CODE

String

Details

ERR_CLASS_DEVICE = 0

Device

This Error Class pertains to circumstances that affect the functioning of an entire BACnet device. The presence of one of these

  • ERR_CODE_DEVICE_BUSY = 3,

Device busy

A service request has been temporarily declined because the addressed BACnet device expects to be involved in higher priority processing for a time in excess of the usual request/confirm timeout period.

  • ERR_CODE_CONFIG_IN_PROGRESS = 2,

Configuration in progress

A service request has been temporarily declined because the addressed BACnet device is in the process of being configured, either by means local to the device or by means of other protocol services.

  • ERR_CODE_OPERATIONAL_PROBLEM = 25,

Operational problem

A service request has been declined because the addressed BACnet device has detected an operational problem that prevents it from carrying out the requested service.

  • ERR_CODE_OTHER = 0

Other

This error code is returned for a reason other than any of those previously enumerated for this Error Class.

ERR_CLASS_OBJECT = 1

Object

This Error Class pertains to problems related to identifying, accessing, and manipulating BACnet objects, whether BACnet defined or not. Since these errors generally apply to individual object characteristics, they do not necessarily signal that an entire service request has failed.

  • ERR_CODE_DYN_CREATION_NOT_SUPP = 4

Dynamic creation not supported

An attempt has been made to create an object using an object type that cannot be created dynamically.

  • ERR_CODE_NO_ALARM_CONFIGURED = 74

No alarm configured

The BACnet object referenced by the service does not support, or is not configured for, event generation.

  • ERR_CODE_NO_OBJS_OF_SPEC_TYPE = 17

Object not found

A search of the addressed BACnet device's object database has failed to find any objects of the object type specified in the service request.

  • ERR_CODE_OBJ_DELETION_DENIED = 23

Object deletion denied

An attempt has been made to delete an object that cannot be deleted or is currently protected from deletion.

  • ERR_CODE_OBJ_ID_ALREADY_EXISTS = 24

Object ID already exists

An attempt has been made to create a new object using an object identifier already in use.

  • ERR_CODE_READ_ACCESS_DENIED = 27

Read access denied

An attempt has been made to read the properties of an object defined as inaccessible through the BACnet protocol read services.

  • ERR_CODE_UNKNOWN_OBJECT = 31

Unknown object

An Object_Identifier has been specified for an object that does not exist in the object database of the addressed BACnet device.

  • ERR_CODE_UNSUPPORTED_OBJ_TYPE = 36

Unsupported object type

An object type has been specified in a service parameter that is unknown or unsupported in the addressed BACnet device.

  • ERR_CODE_OTHER = 0

Other

This error code is returned for a reason other than any of those previously enumerated for this Error Class.

ERR_CLASS_PROPERTY = 2

Property

This Error Class pertains to problems related to identifying, accessing, and manipulating the properties of BACnet objects, whether BACnet-defined or not. Since these errors generally apply to individual property characteristics, they do not necessarily signal that an entire service request has failed.

  • ERR_CODE_CHAR_SET_NOT_SUPPORTED = 41

Character set not supported

A character string value was encountered that is not a supported character set.

  • ERR_CODE_DATATYPE_NOT_SUPPORTED = 47

Datatype not supported

The data is of, or contains, a datatype not supported by this instance of this property.

  • ERR_CODE_INVALID_SELECTION_CRIT = 8

Invalid selection criteria

A property has been referenced with a datatype inconsistent with the 'Comparison Value' specified in an 'Object Selection Criteria' service parameter. This error would arise, for example, if an analog property were compared against a Boolean constant, or vice-versa.

  • ERR_CODE_INVALID_ARRAY_INDEX = 42

Invalid array index

An attempt was made to access an array property using an array index that is outside the range permitted for this array.

  • ERR_CODE_INVALID_DATA_TYPE = 9,

Invalid data type

The datatype of a property value specified in a service parameter does not match the datatype of the property referenced by the specified Property_Identifier.

  • ERR_CODE_NOT_COV_PROPERTY = 44

Not COV property

The property is not conveyed by COV notification.

  • ERR_CODE_OPTIONAL_FUNC_NOT_SUPP = 45

Optional functionality not supported

An attempt has been made to write a value to a property that would require the device to exhibit non-supported optional functionality.

  • ERR_CODE_PROPERTY_IS_NOT_AN_ARRAY = 50

Property is not an array

An attempt has been made to access a property as an array and that property does not have an array datatype.

  • ERR_CODE_READ_ACCESS_DENIED = 27

Read access denied

An attempt has been made to read a property defined as inaccessible through the BACnet protocol read services.

  • ERR_CODE_UNKNOWN_PROPERTY = 32

Unknown property

A Property_Identifier has been specified in a service parameter that is unknown or unsupported in the addressed BACnet device for objects of the referenced object type.

  • ERR_CODE_VALUE_OUT_OF_RANGE = 37

Value out of range

An attempt has been made to write to a property with a value that is outside the range of values defined for the property.

  • ERR_CODE_WRITE_ACCESS_DENIED = 40

Write access denied

An attempt has been made to write to a property defined as inaccessible through the BACnet protocol write services.

  • ERR_CODE_OTHER = 0

Other

This error code is returned for a reason other than any of those previously enumerated for this Error Class.

ERR_CLASS_RESOURCES = 3

Resources

This Error Class pertains to problems related to the resources of a BACnet device that affect its capacity to carry out protocol service requests.

  • ERR_CODE_NO_SPACE_FOR_OBJECT = 18,

No space for object

An attempt to create an object has failed because not enough dynamic memory space exists in the addressed BACnet device.

  • ERR_CODE_NO_SPACE_FOR_ELEMENT = 19,

No space for element

An attempt to add an element to a list has failed because not enough dynamic memory space exists in the addressed BACnet device.

  • ERR_CODE_NO_SPACE_TO_WRITE_PROP = 20,

No space to write property

An attempt to write a property has failed because not enough dynamic memory space exists in the addressed BACnet device.

  • ERR_CODE_OTHER = 0

Other

This error code is returned for a reason other than any of those previously enumerated for this Error Class.

ERR_CLASS_SECURITY = 4

Security

This Error Class pertains to problems related to security.

  • ERR_CODE_AUTHENTICATION_FAILED = 1

Authentication failed

The message being authenticated was not generated by the service provider.

  • ERR_CODE_CHAR_SET_NOT_SUPPORTED = 41

Character set not supported

A character string value was encountered that is not a supported character set.

  • ERR_CODE_WRONG_SECURITY_LEVELS = 6

Wrong security levels

The two clients do not have the same security authorization.

  • ERR_CODE_INVALID_OPERATOR_NAME = 12

Invalid operator name

The 'Operator Name' is not associated with any known operators.

  • ERR_CODE_KEY_GENERATION_ERROR = 15

Key generation error

The key server was unable to generate a Session Key (SK).

  • ERR_CODE_PASSWORD_FAILURE = 26

Password failure

The password was incorrect.

  • ERR_CODE_SECURITY_NOT_SUPPORTED = 28

Security not supported

The remote client does not support any BACnet security mechanisms.

  • ERR_CODE_TIMEOUT = 30

Timeout

The APDU with the expected Invoke ID was not received before the waiting time expired.

  • ERR_CODE_OTHER = 0

Other

This error code is returned for a reason other than any of those previously enumerated for this Error Class.

ERR_CLASS_SERVICES = 5

Services

This Error Class pertains to problems related to the execution of protocol service requests, whether BACnet-defined or not. Without exception, these errors signal the inability of the responding BACnet-user to carry out the desired service in its entirety and are thus "fatal."

  • ERR_CODE_CHAR_SET_NOT_SUPPORTED = 41

Character set not supported

A character string value was encountered that is not a supported character set.

  • ERR_CODE_COV_SUBS_FAILED = 43

COV subscription failed

COV Subscription failed for some reason.

  • ERR_CODE_DUPLICATE_NAME = 48

Duplicate name

An attempt has been made to write to an Object_Name property with a value that is already in use in a different Object_Name property within the device.

  • ERR_CODE_DUPLICATE_OBJECT_ID = 49

Duplicate object ID

An attempt has been made to write to an Object_Identifier property with a value that is already in use in a different Object_Identifier within the same device.

  • ERR_CODE_FILE_ACCESS_DENIED = 5

File access denied

Generated in response to an AtomicReadFile or AtomicWriteFile service request for access to a file that is currently locked or otherwise not accessible.

  • ERR_CODE_INCONSISTENT_PARAMS = 7

Invalid parameters

A conflict exists because two or more of the parameters specified in the service

  • ERR_CODE_INVALID_CONFIG_DATA = 46

Invalid configuration data

The configuration data provided was invalid or corrupt.

  • ERR_CODE_INVALID_EVENT_STATE = 73

Invalid event state

The 'Event State Acknowledged' parameter conveyed by an AcknowledgeAlarm service request does not match the ‘To State’ parameter of the most recent occurrence of the same transition type of the event being acknowledged.

  • ERR_CODE_INVALID_FILE_ACCESS = 10

Invalid file access

Generated in response to an AtomicReadFile or AtomicWriteFile request that specifies a 'File Access Method' that is not valid for the specified file.

  • ERR_CODE_INVALID_FILE_START_POS = 11

Invalid file start position

Generated in response to an AtomicReadFile or AtomicWriteFile request that specifies an invalid 'File Start Position' or invalid 'File Start Record' parameter.

  • ERR_CODE_INVALID_PARAMETER_TYPE = 13

Invalid parameter type

The datatype of a value specified for a service parameter is not appropriate to the parameter.

  • ERR_CODE_INVALID_TIME_STAMP = 14

Invalid time stamp

The 'Time Stamp' parameter conveyed by an AcknowledgeAlarm service request does not match the time of the most recent occurrence of the event being acknowledged.

  • ERR_CODE_MISSING_PARAMETER = 16

Missing parameter

A parameter required for the execution of a service request has not been supplied.

  • ERR_CODE_OPTIONAL_FUNC_NOT_SUPP = 45

Optional functionality not supported

An attempt has been made to write a value to a property that would require the device to exhibit non-supported optional functionality.

  • ERR_CODE_PROP_IS_NOT_A_LIST = 22

Property is not a list

An attempt has been made to access a property via either the AddListElement service or the RemoveListElement service and that property does not have a list datatype.

  • ERR_CODE_PROPERTY_IS_NOT_AN_ARRAY = 50

Property is not an array

An attempt has been made to access a property as an array and that property does not have an array datatype.

  • ERR_CODE_SERVICE_REQUEST_DENIED = 29

Service request denied

A request has been made to execute a service for which the requesting BACnet device does not have the appropriate authorization.

  • ERR_CODE_OTHER = 0

Other

This error code is returned for a reason other than any of those previously enumerated for this Error Class.

ERR_CLASS_VT = 6

VT

This Error Class pertains to problems related to the execution of Virtual Terminal services.

  • ERR_CODE_UNKNOWN_VT_CLASS = 34

Unknown VT class

This error indicates that the 'VT-Class' specified in a VT-Open request was not recognized by the target device.

  • ERR_CODE_UNKNOWN_VT_SESSION = 35

Unknown VT session

This error indicates that the 'VT-Session ID' specified in a VT-Data or VT-Close request was not recognized by the target device.

  • ERR_CODE_NO_VT_SESSIONS_AVAIL = 21

No VT sessions available

This error indicates that the target device could not fulfill a VT-Open request because of resource limitations.

  • ERR_CODE_VT_SESSION_CLOSED = 38

VT session already closed

This error indicates that an attempt has been made to close a VT-session that has been previously terminated.

  • ERR_CODE_VT_SESSION_TERM_FAILED = 39

VT session termination failure

This error indicates that one of the 'VT-Sessions' specified in a VTClose request could not be released for some implementation-dependent reason.

  • ERR_CODE_OTHER = 0

Other

This error code is returned for a reason other than any of those previously enumerated for this Error Class.

BACSTAC_STATUS_BACNET_REJECT

BACSTAC_STATUS_BACNET_REJECT appends the REJECT reason. Only confirmed request PDUs can be rejected. The possible reasons for rejecting the PDU are enumerated in this subclause.

REJECT REASON

REJECT code

String

Details

REJECT_OTHER = 0

Other

Generated in response to a confirmed request APDU that contains a syntax error for which an error code has not been explicitly defined.

REJECT_BUFFER_OVERFLOW = 1

Buffer overflow

A buffer capacity has been exceeded.

REJECT_INCONSISTENT_PARAMS = 2

Inconsistent parameters

Generated in response to a confirmed request APDU that omits a conditional service argument that should be present or contains a conditional service argument that should not be present. This condition could also elicit a Reject PDU with a Reject Reason of INVALID_TAG.

REJECT_INVALID_DATA_TYPE = 3

Invalid parameter data type

Generated in response to a confirmed request APDU in which the encoding of one or more of the service parameters does not follow the correct type specification. This condition could also elicit a Reject PDU with a Reject Reason of INVALID_TAG.

REJECT_INVALID_TAG = 4

Invalid tag

While parsing a message, an invalid tag was encountered. Since an invalid tag could confuse the parsing logic, any of the following Reject Reasons may also be generated in response to a confirmed request containing an invalid tag: INCONSISTENT_PARAMETERS, INVALID_PARAMETER_DATA_TYPE, MISSING_REQUIRED_PARAMETER, and TOO_MANY_ARGUMENTS.

REJECT_MISSING_REQUIRED_PARAM = 5

Missing required parameter

Generated in response to a confirmed request APDU that is missing at least one mandatory service argument. This condition could also elicit a Reject PDU with a Reject Reason of INVALID_TAG

REJECT_PARAMETER_OUT_OF_RANGE = 6

Parameter out of range

Generated in response to a confirmed request APDU that conveys a parameter whose value is outside the range defined for this service.

REJECT_TOO_MANY_ARGUMENTS = 7

Too many arguments

Generated in response to a confirmed request APDU in which the total number of service arguments is greater than specified for the service. This condition could also elicit a Reject PDU with a Reject Reason of INVALID_TAG.

REJECT_UNDEFINED_ENUMERATION = 8

Undefined enumeration

Generated in response to a confirmed request APDU in which one or more of the service parameters is decoded as an enumeration that is not defined by the type specification of this parameter.

REJECT_UNRECOGNIZED_SERVICE = 9

Unrecognized service

Generated in response to a confirmed request APDU in which the Service Choice field specifies an unknown or unsupported service.

BACSTAC_STATUS_BACNET_ABORT

BACSTAC_STATUS_BACNET_ABORT appends the ABORT reason.

ABORT REASON

ABORT code

String

Details

ABORT_OTHER = 0

Other

This abort reason is returned for a reason other than any of those previously enumerated.

ABORT_BUFFER_OVERFLOW = 1

Buffer overflow

A buffer capacity has been exceeded.

ABORT_INVALID_APDU = 2

Invalid APDU in this state

Generated in response to an APDU that is not expected in the present state of the Transaction State Machine.

ABORT_PREEMPTED = 3

Preempted by higher priority task

The transaction shall be aborted to permit higher priority processing.

ABORT_SEGMENTATION_NOT_SUPP = 4

Segmentation not supported

Generated in response to an APDU that has its segmentation bit set to TRUE when the receiving device does not support segmentation. It is also generated when a BACnet-ComplexACK-PDU is large enough to require segmentation but it cannot be transmitted because either the transmitting device or the receiving device does not support segmentation.