<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!-- saved from url=(0014)about:internet --><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" href="../../../style.css" type="text/css" media="screen"><link rel="stylesheet" href="../../../print.css" type="text/css" media="print"><link rel="stylesheet" href="../../../override.css" type="text/css"><meta name="keywords" content="ErrorMessage,mx.messaging.messages.ErrorMessage,ADD_SUBSCRIPTIONS,AUTHENTICATION_MESSAGE_REF_TYPE,CLIENT_PING_OPERATION,CLIENT_SYNC_OPERATION,CLUSTER_REQUEST_OPERATION,CONTENT_TYPE_FORM,CONTENT_TYPE_SOAP_XML,CONTENT_TYPE_XML,CREDENTIALS_CHARSET_HEADER,DELETE_METHOD,DESTINATION_CLIENT_ID_HEADER,DISCONNECT_OPERATION,ENDPOINT_HEADER,ERROR_HINT_HEADER,FLEX_CLIENT_ID_HEADER,GET_METHOD,HEAD_METHOD,HEARTBEAT_HEADER,LOGIN_OPERATION,LOGOUT_OPERATION,MAX_FREQUENCY_HEADER,MESSAGE_DELIVERY_IN_DOUBT,MESSAGING_VERSION,MULTI_SUBSCRIBE_OPERATION,NEEDS_CONFIG_HEADER,NO_OP_POLL_HEADER,OPTIONS_METHOD,POLL_OPERATION,POLL_WAIT_HEADER,POST_METHOD,PRESERVE_DURABLE_HEADER,PRIORITY_HEADER,PUT_METHOD,REMOTE_CREDENTIALS_CHARSET_HEADER,REMOTE_CREDENTIALS_HEADER,REMOVE_SUBSCRIPTIONS,REQUEST_TIMEOUT_HEADER,RETRYABLE_HINT_HEADER,SELECTOR_HEADER,SOAP_ACTION_HEADER,STATUS_CODE_HEADER,SUBSCRIBE_OPERATION,SUBSCRIPTION_INVALIDATE_OPERATION,SUBTOPIC_HEADER,SUBTOPIC_SEPARATOR,TRACE_METHOD,TRIGGER_CONNECT_OPERATION,UNKNOWN_OPERATION,UNSUBSCRIBE_OPERATION,body,body,clientId,clientId,clientReceiveTime,contentType,correlationId,destination,destination,extendedData,faultCode,faultDetail,faultString,headers,headers,httpHeaders,messageId,messageId,messageSize,method,networkRTT,operation,operation,originatingMessageSentTime,originatingMessageSize,pushOneWayTime,pushedMessageFlag,recordHeaders,responseMessageSize,rootCause,serverAdapterExternalTime,serverAdapterTime,serverNonAdapterTime,serverPollDelay,serverPrePushTime,serverProcessingTime,serverSendTime,source,timeToLive,timeToLive,timestamp,timestamp,totalPushTime,totalTime,url"><title>mx.messaging.messages.ErrorMessage</title></head><body><script language="javascript" type="text/javascript" src="../../../asdoc.js"></script><script language="javascript" type="text/javascript" src="../../../help.js"></script><script language="javascript" type="text/javascript" src="../../../cookies.js"></script><script language="javascript" type="text/javascript"><!--
				asdocTitle = 'ErrorMessage - ApacheFlex API Reference';
				var baseRef = '../../../';
				window.onload = configPage;
			--></script>
<script type="text/javascript">
			scrollToNameAnchor();
		</script><table class="titleTable" cellpadding="0" cellspacing="0" id="titleTable" style="display:none"><tr><td class="titleTableTitle" align="left">Apache Flex 4.16.1 API Reference </td><td class="titleTableTopNav" align="right"><a href="../../../package-summary.html" onclick="loadClassListFrame('../../../all-classes.html')">All Packages</a>&nbsp;|&nbsp;<a href="../../../class-summary.html" onclick="loadClassListFrame('../../../all-classes.html')">All Classes</a>&nbsp;|&nbsp;<a href="../../../all-index-A.html" onclick="loadClassListFrame('../../../index-list.html')">Index</a>&nbsp;|&nbsp;<a id="framesLink1" href="../../../index.html?mx/messaging/messages/ErrorMessage.html&amp;mx/messaging/messages/class-list.html">Frames</a><a id="noFramesLink1" style="display:none" href="" onclick="parent.location=document.location"> No Frames </a></td><td class="titleTableLogo" align="right" rowspan="3"><img src="../../../images/logo.jpg" class="logoImage" alt="AdobeLogo" title="AdobeLogo"></td></tr><tr class="titleTableRow2"><td class="titleTableSubTitle" id="subTitle" align="left">ErrorMessage</td><td class="titleTableSubNav" id="subNav" align="right"><a href="#propertySummary">Properties</a>&nbsp;| <a href="#methodSummary">Methods</a>&nbsp;| <a href="#constantSummary">Constants</a></td></tr><tr class="titleTableRow3"><td colspan="3">&nbsp;</td></tr></table><script language="javascript" type="text/javascript" xml:space="preserve">
				<!--
				
					if (!isEclipse() || window.name != ECLIPSE_FRAME_NAME) {titleBar_setSubTitle("ErrorMessage"); titleBar_setSubNav(true,true,false,false,false,false,false,false,true,false,false	,false,false,false,false,false);}	
				-->
			</script><div xmlns:fn="http://www.w3.org/2005/xpath-functions" class="MainContent"><table class="classHeaderTable" cellpadding="0" cellspacing="0"><tr><td class="classHeaderTableLabel">Package</td><td><a href="package-detail.html" onclick="javascript:loadClassListFrame('class-list.html')">mx.messaging.messages</a></td></tr><tr><td class="classHeaderTableLabel">Class</td><td class="classSignature">public  class  ErrorMessage</td></tr><tr><td class="classHeaderTableLabel">Inheritance</td><td class="inheritanceList">ErrorMessage  <img src="../../../images/inherit-arrow.gif" title="Inheritance" alt="Inheritance" class="inheritArrow"> <a href="../../../mx/messaging/messages/AcknowledgeMessage.html">AcknowledgeMessage</a> <img src="../../../images/inherit-arrow.gif" title="Inheritance" alt="Inheritance" class="inheritArrow"> <a href="../../../mx/messaging/messages/AsyncMessage.html">AsyncMessage</a> <img src="../../../images/inherit-arrow.gif" title="Inheritance" alt="Inheritance" class="inheritArrow"> <a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a> <img src="../../../images/inherit-arrow.gif" title="Inheritance" alt="Inheritance" class="inheritArrow"> Object</td></tr></table><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Versions :&nbsp;</b></td><td>BlazeDS 4, LCDS 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player  9, AIR 1.1</td></tr></table><p></p><p></p><p></p><p></p>
  The ErrorMessage class is used to report errors within the messaging system.
  An error message only occurs in response to a message sent within the
  system.
  
  <p></p><br/><hr></div><a name="propertySummary"></a><div class="summarySection"><div class="summaryTableTitle">Public Properties</div><div class="showHideLinks"><div id="hideInheritedProperty" class="hideInheritedProperty"><a class="showHideLink" href="#propertySummary" onclick="javascript:setInheritedVisible(false,'Property');"><img class="showHideLinkImage" src="../../../images/expanded.gif"> Hide Inherited Public Properties</a></div><div id="showInheritedProperty" class="showInheritedProperty"><a class="showHideLink" href="#propertySummary" onclick="javascript:setInheritedVisible(true,'Property');"><img class="showHideLinkImage" src="../../../images/collapsed.gif"> Show Inherited Public Properties</a></div></div><table cellspacing="0" cellpadding="3" class="summaryTable " id="summaryTableProperty"><tr><th>&nbsp;</th><th colspan="2">Property</th><th class="summaryTableOwnerCol">Defined By</th></tr><tr class="hideInheritedProperty"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AbstractMessage.html#body" class="signatureLink">body</a> : Object<div class="summaryTableDescription">
      The body of a message contains the specific data that needs to be 
      delivered to the remote destination.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr><tr class="hideInheritedProperty"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AbstractMessage.html#clientId" class="signatureLink">clientId</a> : String<div class="summaryTableDescription">
      The clientId indicates which MessageAgent sent the message.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr><tr class="hideInheritedProperty"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AsyncMessage.html#correlationId" class="signatureLink">correlationId</a> : String<div class="summaryTableDescription">
      Provides access to the correlation id of the message.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AsyncMessage.html">AsyncMessage</a></td></tr><tr class="hideInheritedProperty"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AbstractMessage.html#destination" class="signatureLink">destination</a> : String<div class="summaryTableDescription">
      The message destination.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a href="#extendedData" class="signatureLink">extendedData</a> : Object<div class="summaryTableDescription">
     Extended data that the remote destination has chosen to associate
     with this error to facilitate custom error processing on the client.</div></td><td class="summaryTableOwnerCol">ErrorMessage</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a href="#faultCode" class="signatureLink">faultCode</a> : String<div class="summaryTableDescription">
      The fault code for the error.</div></td><td class="summaryTableOwnerCol">ErrorMessage</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a href="#faultDetail" class="signatureLink">faultDetail</a> : String<div class="summaryTableDescription">
      Detailed description of what caused the error.</div></td><td class="summaryTableOwnerCol">ErrorMessage</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a href="#faultString" class="signatureLink">faultString</a> : String<div class="summaryTableDescription">
      A simple description of the error.</div></td><td class="summaryTableOwnerCol">ErrorMessage</td></tr><tr class="hideInheritedProperty"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AbstractMessage.html#headers" class="signatureLink">headers</a> : Object<div class="summaryTableDescription">
      The headers of a message are an associative array where the key is the
      header name and the value is the header value.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr><tr class="hideInheritedProperty"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AbstractMessage.html#messageId" class="signatureLink">messageId</a> : String<div class="summaryTableDescription">
      The unique id for the message.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a href="#rootCause" class="signatureLink">rootCause</a> : Object<div class="summaryTableDescription">
      Should a root cause exist for the error, this property contains those details.</div></td><td class="summaryTableOwnerCol">ErrorMessage</td></tr><tr class="hideInheritedProperty"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AbstractMessage.html#timestamp" class="signatureLink">timestamp</a> : Number<div class="summaryTableDescription">
      Provides access to the time stamp for the message.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr><tr class="hideInheritedProperty"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AbstractMessage.html#timeToLive" class="signatureLink">timeToLive</a> : Number<div class="summaryTableDescription">
      The time to live value of a message indicates how long the message
      should be considered valid and deliverable.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr></table></div><a name="methodSummary"></a><div class="summarySection"><div class="summaryTableTitle">Public Methods </div><div class="showHideLinks"><div id="hideInheritedMethod" class="hideInheritedMethod"><a class="showHideLink" href="#methodSummary" onclick="javascript:setInheritedVisible(false,'Method');"><img class="showHideLinkImage" src="../../../images/expanded.gif"> Hide Inherited Public Methods</a></div><div id="showInheritedMethod" class="showInheritedMethod"><a class="showHideLink" href="#methodSummary" onclick="javascript:setInheritedVisible(true,'Method');"><img class="showHideLinkImage" src="../../../images/collapsed.gif"> Show Inherited Public Methods</a></div></div><table cellspacing="0" cellpadding="3" class="summaryTable " id="summaryTableMethod"><tr><th>&nbsp;</th><th colspan="2">Method</th><th class="summaryTableOwnerCol">Defined By</th></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="#ErrorMessage()" class="signatureLink">ErrorMessage</a>()</div><div class="summaryTableDescription">
      Constructs an ErrorMessage instance.</div></td><td class="summaryTableOwnerCol">ErrorMessage</td></tr><tr class="hideInheritedMethod"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="../../../mx/messaging/messages/AbstractMessage.html#toString()" class="signatureLink">toString</a>():String</div><div class="summaryTableDescription">
      Returns a string representation of the message.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr></table></div><a name="constantSummary"></a><div class="summarySection"><div class="summaryTableTitle">Public Constants</div><div class="showHideLinks"><div id="hideInheritedConstant" class="hideInheritedConstant"><a class="showHideLink" href="#constantSummary" onclick="javascript:setInheritedVisible(false,'Constant');"><img class="showHideLinkImage" src="../../../images/expanded.gif"> Hide Inherited Public Constants</a></div><div id="showInheritedConstant" class="showInheritedConstant"><a class="showHideLink" href="#constantSummary" onclick="javascript:setInheritedVisible(true,'Constant');"><img class="showHideLinkImage" src="../../../images/collapsed.gif"> Show Inherited Public Constants</a></div></div><table cellspacing="0" cellpadding="3" class="summaryTable " id="summaryTableConstant"><tr><th>&nbsp;</th><th colspan="2">Constant</th><th class="summaryTableOwnerCol">Defined By</th></tr><tr class="hideInheritedConstant"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AbstractMessage.html#DESTINATION_CLIENT_ID_HEADER" class="signatureLink">DESTINATION_CLIENT_ID_HEADER</a> : String = DSDstClientId<div class="summaryTableDescription">[static] 
      Messages pushed from the server may arrive in a batch, with messages in the
      batch potentially targeted to different Consumer instances.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr><tr class="hideInheritedConstant"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AbstractMessage.html#ENDPOINT_HEADER" class="signatureLink">ENDPOINT_HEADER</a> : String = DSEndpoint<div class="summaryTableDescription">[static] 
      Messages are tagged with the endpoint id for the Channel they are sent over.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr><tr class="hideInheritedConstant"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AcknowledgeMessage.html#ERROR_HINT_HEADER" class="signatureLink">ERROR_HINT_HEADER</a> : String = DSErrorHint<div class="summaryTableDescription">[static] 
      Header name for the error hint header.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AcknowledgeMessage.html">AcknowledgeMessage</a></td></tr><tr class="hideInheritedConstant"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AbstractMessage.html#FLEX_CLIENT_ID_HEADER" class="signatureLink">FLEX_CLIENT_ID_HEADER</a> : String = DSId<div class="summaryTableDescription">[static] 
	  This header is used to transport the global FlexClient Id value in outbound 
	  messages once it has been assigned by the server.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a href="#MESSAGE_DELIVERY_IN_DOUBT" class="signatureLink">MESSAGE_DELIVERY_IN_DOUBT</a> : String = Client.Error.DeliveryInDoubt<div class="summaryTableDescription">[static] 
      If a message may not have been delivered, the faultCode will
      contain this constant.</div></td><td class="summaryTableOwnerCol">ErrorMessage</td></tr><tr class="hideInheritedConstant"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AbstractMessage.html#PRIORITY_HEADER" class="signatureLink">PRIORITY_HEADER</a> : String = DSPriority<div class="summaryTableDescription">[static] 
      Messages sent by a MessageAgent can have a priority header with a 0-9
      numerical value (0 being lowest) and the server can choose to use this
      numerical value to prioritize messages to clients.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr><tr class="hideInheritedConstant"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AbstractMessage.html#REMOTE_CREDENTIALS_CHARSET_HEADER" class="signatureLink">REMOTE_CREDENTIALS_CHARSET_HEADER</a> : String = DSRemoteCredentialsCharset<div class="summaryTableDescription">[static] 
      Messages that need to set remote credentials for a destination
      may also need to report the character-set encoding that was used to
      create the credentials String using this header.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr><tr class="hideInheritedConstant"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AbstractMessage.html#REMOTE_CREDENTIALS_HEADER" class="signatureLink">REMOTE_CREDENTIALS_HEADER</a> : String = DSRemoteCredentials<div class="summaryTableDescription">[static] 
      Messages that need to set remote credentials for a destination
      carry the Base64 encoded credentials in this header.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr><tr class="hideInheritedConstant"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AbstractMessage.html#REQUEST_TIMEOUT_HEADER" class="signatureLink">REQUEST_TIMEOUT_HEADER</a> : String = DSRequestTimeout<div class="summaryTableDescription">[static] 
	  Messages sent with a defined request timeout use this header.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a href="#RETRYABLE_HINT_HEADER" class="signatureLink">RETRYABLE_HINT_HEADER</a> : String = DSRetryableErrorHint<div class="summaryTableDescription">[static] 
      Header name for the retryable hint header.</div></td><td class="summaryTableOwnerCol">ErrorMessage</td></tr><tr class="hideInheritedConstant"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AbstractMessage.html#STATUS_CODE_HEADER" class="signatureLink">STATUS_CODE_HEADER</a> : String = DSStatusCode<div class="summaryTableDescription">[static] 
      A status code can provide context about the nature of a response
      message.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AbstractMessage.html">AbstractMessage</a></td></tr><tr class="hideInheritedConstant"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../../mx/messaging/messages/AsyncMessage.html#SUBTOPIC_HEADER" class="signatureLink">SUBTOPIC_HEADER</a> : String = DSSubtopic<div class="summaryTableDescription">[static] 
	  Messages sent by a MessageAgent with a defined subtopic
	  property indicate their target subtopic in this header.</div></td><td class="summaryTableOwnerCol"><a href="../../../mx/messaging/messages/AsyncMessage.html">AsyncMessage</a></td></tr></table></div><script language="javascript" type="text/javascript"><!--
										showHideInherited();
										--></script><div class="MainContent"><div class="detailSectionHeader">Property Detail</div><a name="propertyDetail"></a><a name="extendedData"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName">extendedData</td><td class="detailHeaderType">property</td></tr></table><div class="detailBody"><code>public var extendedData:Object</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Versions :&nbsp;</b></td><td>BlazeDS 4, LCDS 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player  9, AIR 1.1</td></tr></table><p></p><p></p><p>
     Extended data that the remote destination has chosen to associate
     with this error to facilitate custom error processing on the client.
      
      </p></div><a name="propertyDetail"></a><a name="faultCode"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName">faultCode</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>public var faultCode:String</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Versions :&nbsp;</b></td><td>BlazeDS 4, LCDS 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player  9, AIR 1.1</td></tr></table><p></p><p></p><p>
      The fault code for the error.
      This value typically follows the convention of
      "[outer_context].[inner_context].[issue]".
      For example: "Channel.Connect.Failed", "Server.Call.Failed", etc.
      
      </p></div><a name="propertyDetail"></a><a name="faultDetail"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName">faultDetail</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>public var faultDetail:String</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Versions :&nbsp;</b></td><td>BlazeDS 4, LCDS 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player  9, AIR 1.1</td></tr></table><p></p><p></p><p>
      Detailed description of what caused the error.
      This is typically a stack trace from the remote destination.
      
      </p></div><a name="propertyDetail"></a><a name="faultString"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName">faultString</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>public var faultString:String</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Versions :&nbsp;</b></td><td>BlazeDS 4, LCDS 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player  9, AIR 1.1</td></tr></table><p></p><p></p><p>
      A simple description of the error.
      
      </p></div><a name="propertyDetail"></a><a name="rootCause"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName">rootCause</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>public var rootCause:Object</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Versions :&nbsp;</b></td><td>BlazeDS 4, LCDS 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player  9, AIR 1.1</td></tr></table><p></p><p></p><p>
      Should a root cause exist for the error, this property contains those details.
      This may be an ErrorMessage, a NetStatusEvent info Object, or an underlying
      Flash error event: ErrorEvent, IOErrorEvent, or SecurityErrorEvent.
      
      </p></div><a name="constructorDetail"></a><div class="detailSectionHeader">Constructor Detail</div><a name="ErrorMessage()"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName">ErrorMessage</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">Constructor</td></tr></table><div class="detailBody"><code>public function ErrorMessage()</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Versions :&nbsp;</b></td><td>BlazeDS 4, LCDS 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player  9, AIR 1.1</td></tr></table><p></p><p>
      Constructs an ErrorMessage instance.
      
      </p></div><div class="detailSectionHeader">Constant Detail</div><a name="constantDetail"></a><a name="MESSAGE_DELIVERY_IN_DOUBT"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName">MESSAGE_DELIVERY_IN_DOUBT</td><td class="detailHeaderType">Constant</td></tr></table><div class="detailBody"><code>public static const MESSAGE_DELIVERY_IN_DOUBT:String = Client.Error.DeliveryInDoubt</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Versions :&nbsp;</b></td><td>BlazeDS 4, LCDS 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player  9, AIR 1.1</td></tr></table><p></p><p></p><p>
      If a message may not have been delivered, the <code>faultCode</code> will
      contain this constant. 
      
      </p></div><a name="constantDetail"></a><a name="RETRYABLE_HINT_HEADER"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName">RETRYABLE_HINT_HEADER</td><td class="detailHeaderType">Constant</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>public static const RETRYABLE_HINT_HEADER:String = DSRetryableErrorHint</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Versions :&nbsp;</b></td><td>BlazeDS 4, LCDS 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player  9, AIR 1.1</td></tr></table><p></p><p></p><p>
      Header name for the retryable hint header.
      This is used to indicate that the operation that generated the error
      may be retryable rather than fatal.
      
      </p></div><br/><br/><hr><br/><p></p><center class="copyright"><footer>The Apache Software Foundation</footer><br/>Wed Nov 15 2017, 09:50 AM +01:00  </center></div></body></html><!--The Apache Software Foundation<br/>Wed Nov 15 2017, 09:50 AM +01:00  -->