10.24.0

SDKErrorSubcode Enumeration

A subcode that gives more detailed error information. The last sub-code is stored on a per-thread basis and can be retrieved by an application thread using GetLastSDKErrorInfo of ContextFactory. Applications can take different actions based on the subcode.

Definition

Namespace: SolaceSystems.Solclient.Messaging
Assembly: SolaceSystems.Solclient.Messaging (in SolaceSystems.Solclient.Messaging.dll) Version: 10.24.0
C#
public enum SDKErrorSubcode

Remarks

Common Subcodes

The following subcodes can be returned from all API functions:
  • ParamOutOfRange
  • InternalError
  • OutOfMemory
  • ParamNullReference (functions that accept object parameters)
  • ParamConflict (functions that have interdependent parameters)
  • CannotBlockInContext (functions that result in an interaction with the message router)

Members

Ok0 No error

Appliance Response: 200 OK

ParamOutOfRange1 An API call was made with an out-of-range parameter.

Appliance Response: N/A

ParamNullReference2 An API call was made with a null or invalid reference parameter.

Appliance Response: N/A

ParamConflict3 An API call was made with a parameter combination that is not valid.

Appliance Response: N/A

InsufficientSpace4 An API call failed due to insufficient space to accept more data.

Appliance Response: N/A

OutOfResources5 An API call failed due to lack of resources (for example: starting a timer when all timers are in use).

Appliance Response: 400 Not Enough Space

InternalError6 An API call had an internal error (not an application fault).

Appliance Response: N/A

OutOfMemory7 An API call failed due to inability to allocate memory.

Appliance Response: N/A

ProtocolError8 An API call failed due to a protocol error with the appliance(not an application fault).

Appliance Response: N/A

FactoryInitNotCalled9 An API call failed due to ContextFactory.Init() not being called first.

Appliance Response: N/A

Timeout10 An API call failed due to a timeout.

Appliance Response: N/A

KeepAliveFailure11 Session keep-alive detected a failed session.

Appliance Response: N/A

SessionNotEstablished12 An API call failed due to the session not being established.

Appliance Response: N/A

OperatingSystemError13 An API call failed due to a failed operating system call. An error string is stored.

Appliance Response: N/A

CommunicationError14 An API call failed due to a communication error. An error string is stored.

Appliance Response: N/A

UserDataTooLarge15 An attempt was made to send a message with user data larger than what is supported.

Appliance Response: N/A

TopicTooLarge16 An attempt was made to use a topic which is longer than maximum supported length.

Appliance Response: N/A

InvalidTopicSyntax17 An attempt was made to use a topic which has a syntax that is not supported.

Appliance Response: 400 Topic Parse Error

XmlParseError18 The appliance could not parse an XML message.

Appliance Response: 400 XML Parse Error

LoginFailure19 A client could not log into the appliance (bad username or password).

Appliance Response: All 401 and 404 error codes from appliance

InvalidVirtualAddress20 An attempt was made to connect to wrong IP address on the appliance (must use CVRID, if configured). Or the appliance CVRID has changed and this was detected on reconnect.

Appliance Response: 403 Invalid Virtual Router Address

ClientDeleteInProgress21 Client login is not currently possible as previous instance of the same client still being deleted.

Appliance Response: 503 Subscriber Delete In Progress

TooManyClients22 Client login is not currently possible due to maximum number of active clients on appliance.

Appliance Response: "503 Too Many Clients", "503 Too Many Publishers" or "503 Too Many Subscribers"

SubscriptionAlreadyPresent23 A client attempted to add a subscription which already exists. This response only occurs if session property IgnoreDuplicateSubscriptionError is false.

Appliance Response: "400 already exists" or "400 Subscription Already Exists"

SubscriptionNotFound24 Client attempted to remove a subscription which did not exist. This response only occurs if session property IgnoreDuplicateSubscriptionError is false.

Appliance Response: "400 not found" or "400 Subscription Not Found"

SubscriptionInvalid25 A client attempted to subscribe/unsubscribe from a subscription that is not valid.

Appliance Response: "400 not supported", "400 parse error" or "400 Subscription Parse Error"

SubscriptionOther26 The appliance rejected a subscription subscribe/unsubscribe request for a reason not separately enumerated.

Appliance Response: N/A - this is no longer implemented.

ControlOther27 The appliance rejected a control message for another reason not separately enumerated.

Appliance Response: Default error subCode for Appliance error responses

DataOther28 The appliance rejected a data message for another reason not separately enumerated.

Appliance Response: Default error subCode for error response to published data.

LogFileError29 Could not open the log file name specified by the application for writing.

Appliance Response: N/A


Obsolete.
MessageTooLarge30 A client attempted to send a message larger than that supported by the appliance.

Appliance Response: "400 Document Is Too Large" or "400 Message Too Long"

SubscriptionTooMany31 A client attempted to add a subscription that exceeded the maximum number allowed.

Appliance Response: 400 Max Num Subscriptions Exceeded

InvalidSessionOperation32 An API call failed because the attempted operation was invalid for the session.

Appliance Response: N/A

TopicMissing33 A send call was made that did not have a topic in a mode where one is required (client mode).

Appliance Response: N/A

AssuredMessagingNotEstablished34 A send call was made to send a Guaranteed message before Guaranteed Messaging is established.

Appliance Response: N/A

AssuredMessagingToEstablished34 Deprecated; AssuredMessagingNotEstablished replaces it.

Appliance Response: N/A


Obsolete.
AssuredMessagingStateError35 An attempt was made to initialize Guaranteed Messaging when it is already initialized.

Appliance Response: N/A

QueueNameTopicConflict36 Both Queue Name and Topic are specified in Session.Send().

Appliance Response: N/A

QueueNameTooLarge37 An attempt was made to use a queue name which is longer than maximum supported length.

Appliance Response: N/A

QueueNameInvalidMode38 An attempt was made to use a queue name on a non-Guaranteed message.

Appliance Response: N/A

MaxTotalMessageSizeExceeded39 An attempt was made to send a message with a total size greater than that supported by the protocol.

Appliance Response: N/A

DataBlockAlreadyExists40 An attempt was made to allocate a datablock for a message element when one already exists.

Appliance Response: N/A

NoStructuredDataInContainer41 An attempt was made to create a container to read structured data where none exists.

Appliance Response: N/A

StructuredDataContainerBusy42 An attempt was made to add a field to a map or stream while a sub map or stream is being built.

Appliance Response: N/A

InvalidStructuredDataConversion43 An attempt was made to retrieve structured data with wrong type.

Appliance Response: N/A

AttemptToModifySessionPropertyWhenNotIdle44 An attempt was made to modify a property that cannot be modified while session is not idle.

Appliance Response: N/A

MessageVPNNotAllowed45 The Message VPN name configured for the session does not exist.

Appliance Response: 403 Message VPN Not Allowed

ClientNameInvalid46 The client name chosen has been rejected as invalid by the appliance.

Appliance Response: 400 Client Name Parse Error

MessageVPNUnavailable47 The Message VPN name set for the session (or the default Message VPN if no specific Message VPN name was set) is currently shutdown on the appliance.

Appliance Response: 503 Message VPN Unavailable

ClientUserNameIsShutdown48 The username for the client is administratively shutdown on the appliance.

Appliance Response: 403 Client Username Is Shutdown

DynamicClientsNotAllowed49 The username for the session has not been set and dynamic clients are not allowed.

Appliance Response: 403 Dynamic Clients Not Allowed

ClientNameAlreadyInUse50 The session is attempting to use a client name that is in use by another client in the Message VPN, and the appliance is configured to reject the new session.

Appliance Response: 403 Client Name Already In Use

CacheNoData51 When the cache request returns ReturnCode.SOLCLIENT_INCOMPLETE, this subcode indicates that there is no cached data in the designated cache.

Appliance Response: N/A

CacheSuspectData52 When the designated cache responds to a cache request with suspect data, the API returns ReturnCode.SOLCLIENT_INCOMPLETE with this subcode.

Appliance Response: N/A

CacheErrorResponse53 The Cache Instance has returned an error response to the cache request.

Appliance Response: N/A

CacheInvalidSession54 The cache session operation failed because the session has been destroyed.

Appliance Response: N/A

CacheOperationRequestTimeout55 The cache session operation failed because the request timeout expired.

Appliance Response: N/A

CacheLiveDataFulfill56 The cache session operation completed when live data arrived on the topic requested.

Appliance Response: N/A

CacheRequestAlreadyInProgress57 A cache request has been made when there is already a cache request outstanding on the same topic and FLOW_THRU was not set.

Appliance Response: N/A

MissingReplyTo58 A message does not have the reply-to field when it is needed.

Appliance Response: N/A

CannotBindToQueue59 Already bound to the Guaranteed Messaging queue, or not authorized to bind to the Guaranteed Messaging queue.

Appliance Response: "400 Cannot bind to another subscriber's topic queue." of "400 Already Bound"

InvalidTopicNameForTE60 An attempt was made to bind to a Guaranteed delivery Topic Endpoint with an invalid topic.

Appliance Response: 400 Invalid Topic Name

InvalidTopicNameForDTE60 Deprecated; InvalidTopicNameForTE replaces it.

Appliance Response: 400 Invalid Topic Name


Obsolete.
UnknownQueueName61 An attempt was made to bind to an unknown GQueue name (for example, a Queue that is not configured on the appliance). Or an attempt was made to deprovision a Queue that does not exist. This subcode is only returned if Deprovision(IEndpoint, Int32, Object) was called with ignoreIfEndpointDoesNotExist equals to false

Appliance Response: 503 Unknown Queue

UnknownTEName62 An attempt was made to create a flow to an unknown Topic Endpoint name (for example, a Topic Endpoint that is not configured on the appliance). Or an attempt was made to deprovision a Topic Endpoint that does not exist. This subcode is only returned if Deprovision(IEndpoint, Int32, Object) was called with ignoreIfEndpointDoesNotExist equals to false

Appliance Response: 503 Unknown Durable Topic Endpoint

UnknownDTEName62 Deprecated; UnknownTEName replaces it.

Appliance Response: 503 Unknown Durable Topic Endpoint


Obsolete.
MaxClientsForQueueReached63 An attempt was made to bind to a Queue that already has its maximum number of clients.

Appliance Response: 503 Max clients exceeded for queue

MaxClientsForTEReached64 An attempt was made to bind to a Topic Endpoint that already has its maximum number of clients.

Appliance Response: 503 Max clients exceeded for durable topic endpoint

MaxClientsForDTEReached64 Deprecated; MaxClientsForTEReached replaces it.

Appliance Response: 503 Max clients exceeded for durable topic endpoint


Obsolete.
UnexpectedUnbind65 An unexpected unbind response was received for a Queue or durable Topic Endpoint, and the queue or DTE was deleted from the appliance.

Appliance Response: N/A

QueueNotFound66 The specified Guaranteed Delivery queue was not found when publishing a message.

Appliance Response: 400 Queue Not Found

ClientACLDenied67 The client login to the appliance was denied because the IP address/netmask combination used for the client is designated in the ACL (Access Control List) as a deny connection for the given Message VPN and username.

Appliance Response: 403 Forbidden

SubscriptionACLDenied68 The addition of a subscription was denied because it matched a subscription that was defined on the ACL (Access Control List).

Appliance Response: 403 Subscription ACL Denied

PublishACLDenied69 A message could not be published because its topic matched that of a topic defined on the ACL (Access Control List).

Appliance Response: 403 Publish ACL Denied

DTOInvalid70 An attempt was made to set both Deliver-To-One and Guaranteed Delivery in the same message. (Deprecated: DTO will be applied to the corresponding demoted direct message)

Appliance Response: N/A

SpoolOverQuota71 Message was not delivered because the Guaranteed Delivery message spool is over its allotted space quota.

Appliance Response: 503 Spool Over Quota

QueueShutdown72 An attempt was made to create a flow to a shutdown Guaranteed Delivery queue.

Appliance Response: 503 Queue Shutdown

TEShutdown73 An attempt was made to create a flow to a shutdown Guaranteed Delivery Topic Endpoint.

Appliance Response: "503 Durable Topic Endpoint Shutdown", "503 TE Shutdown", or "503 Endpoint Shutdown"

NoMoreNonDurableQueueOrTE74 An attempt was made to create a flow to a non-durable Guaranteed Delivery Queue or Topic Endpoint, and the appliance is out of resources.

Appliance Response: 503 No More Non-Durable Queue or Topic Endpoint

EndpointAlreadyExists75 An attempt was made to provision a Queue or Topic Endpoint that already exists. This subcode is only returned if Provision(IEndpoint, EndpointProperties, Int32, Object) was called with ignoreErrorIfEndpointAlreadyExists = false.

Appliance Response: 400 Endpoint Already Exists

PermissionNotAllowed76 An attempt was made to delete or create a Queue or Topic Endpoint when the session does not have authorization for the action.

This subcode is also returned when an attempt it made to remove a message from an endpoint when the session does not have 'consume' authorization and when an attempt is made to add or remove a topic subscription from a queue when the session does not have 'modify-topic' authorization.

Appliance Response: 403 Permission Denied

InvalidSelector77 An attempt was made to crate a flow to a Queue or Topic Endpoint with an invalid selector.

Appliance Response: 406 Invalid Selector

MaxMsgUsageExceeded78 Publishing of message denied due to exceeding the maximum spooled message count.

Appliance Response: 503 Max message usage exceeded

EndpointPropertyMismatch79 Attempted to create a dynamic durable endpoint and it was found to exist with different properties.

Appliance Response: 401 Endpoint Property Mismatch

SubscriptionManagerDenied80 Attempted to add a subscription to another client when session does not have subscription manager privileges.

Appliance Response: 403 Subscription Manager Denied

UnknownClientName81 Attempted to add a subscription to another client that is unknown on the appliance.

Appliance Response: 403 Unknown Client Name

QuotaOutOfRange82 Attempted to provision an endpoint with a quota that is out of range.

Appliance Response: 400 Quota Out Of Range

SubscriptionAttributesConflict83 The client attempted to add a subscription which already exists but it has different properties.

Appliance Response: 400 Subscription Attributes Conflict With Existing Subscription

NoLocalNotSupported85 The client attempted to establish a session or flow with No Local enabled and the capability is not supported by the appliance.

Appliance Response: N/A

UnsubscribeNotAllowed86 The client attempted to unsubscribe a topic from a Topic Endpoint while there were still flows bound to the endpoint.

Appliance Response: 400 Unsubscribe not allowed, client(s) bound to DTE

CannotBlockInContext87 An API was invoked in the IContext thread that would have blocked otherwise. For example, a call was made to send a message when the session is configured with SendBlocking enabled and the transport channel is full. All application callback functions are executed in the IContext thread.

Appliance Response: N/A

ActiveFlowIndicationUnsupported88 A flow creation failed because the appliance didn't have support for the requested Active Flow Indication.

Appliance Response: N/A

UnresolvedHost89 The client failed to connect because the host name could not be resolved.

Appliance Response: N/A

InvalidFlowOperation93 An API call failed because the requested operation was invalid for the flow.
UnknownFlowName94 The session was disconnected due to loss of the publisher flow state. All (unacked and unsent) messages held by the API were deleted. To connect the session, applications need to call Connect again.

Appliance Response: 400 Unknown Flow Name

ReplicationIsStandby95 An attempt to perform an operation using a VPN that is configured to be STANDBY for replication.

Appliance Response: 403 Replication Is Standby

LowPriorityMsgCongestion96 The message was rejected by the appliance as one or more matching endpoints exceeded the reject-low-priority-msg-limit configuration.

Appliance Response: 503 Low Priority Msg Congestion

SSLLibraryNotLoaded97 The client attempted to establish a SSL session with SSL library not loaded.

Appliance Response: N/A


Obsolete.
LibraryNotLoaded97 The client failed to find a required library or symbol
FailedLoadingTruststore98 The client failed to load the trust store.

Appliance Response: N/A

UntrustedCertificate99 The client attempted to connect to an appliance that has a suspect certficate.

Appliance Response: N/A

UntrustedCommonName100 The client attempted to connect to an appliance that has a suspect common name.

Appliance Response: N/A

CertificateDateInvalid101 The client attempted to connect to an appliance that does not have a valid certificate date.

Appliance Response: N/A

FailedLoadingCertificateAndKey102 The client failed to load certificate and/or private key files.

Appliance Response: N/A

BasicAuthenticationIsShutdown103 The client attempted to connect to an appliance that has the basic authentication shutdown.

Appliance Response: 403 Basic Authentication is Shutdown

ClientCertificateAuthenticationIsShutdown104 The client attempted to connect to an appliance that has the client certificate authentication shutdown.

Appliance Response: 403 Client Certificate Authentication is Shutdown

UntrustedClientCertificate105 The client failed to connect to an appliance as it has a suspect client certificate.

Appliance Response: "403 Untrusted Certificate" or "403 Certificate Chain Too Long" or "403 Certificate Error"

ClientCertificateDateInvalid106 The client failed to connect to an appliance as it does not have a valid client certificate date.

Appliance Response: "403 Certificate Not Yet Valid" or "403 Certificate Expired"

CacheRequestCancelled107 The cache request has been cancelled by the user (by calling CancelCacheRequests)

Appliance Response: N/A

DeliveryModeUnsupported108 Attempt was made from a Transacted Session to send a message with Direct set
PublisherNotCreated109 The client attempted to send a message without a publisher
FlowUnbound110 Client attempted to receive messages from an unbound Flow with no queued messages in memory
InvalidTransactedSessionID111 The client attempted to commit or rollback a transaction with an invalid transacted session id
InvalidTransactionID112 Commit or rollback a transaction with an invalid transaction id
MaxTransactedSessionsExceeded113 Failed to open a transacted session as it exceeded the max transacted sessions
TransactedSessionNameInUse114 The client attempted to open a transacted session with a name already in use
ServiceUnavailable115 Guarenteed delivery services are not enabled on the appliance
NoTransactionStarted116 The client attempted to commit an unknown transaction
PublisherNotEstablished117 The client attempted to send a message from a transacted session before a publisher is established
MessagePublishFailure118 The client attempted to commit a transaction after a guaranteed delivery publish failure occured
TransactionFailure119 The client attempted to commit a transaction with too many transaction steps
MessageConsumeFailure120 The client attempted to commit a transaction with a consume failure
EndpointModified121 The client attempted to commit a transaction involving an Endpoint which had been shutdown or deleted
InvalidConnectionOwner122 The client attempted to commit a transaction with an unknown connection id
KerberosAuthenticationIsShutdown123 The client attempted to connect to an appliance that has Kerberos authentication shutdown
CommitRollbackAlreadyInProgress124 The client attemped to commit or rollback a transaction multiple times
UnbindResponseLost125 The application called disposed or otherwise destroyed a IFlow object and the unbind-response was not received.
MaxTransactionsExceeded126 The client failed to open a Transacted Session ITransactedSessionas the maximum number of transactions was exceeded.
CommitStatusUnknown127 The commit response was lost due to a transport layer reconnection to an alternate host in the host list. The commit may have succeeded on the message-router before the response was lost. Or the commit request may have failed (roll back). Applications that treat the failure as a rollback must allow for duplicate transactions.
ProxyAuthRequred128 The host entry did not contain proxy authentication when required by the proxy server
ProxyAuthFailure129 The host entry contained invalid proxy authentication when required by the proxy server
NoSubscriptionMatch130 The client attempted to publish a guaranteed message to a topic that did not have any guaranteed subscription matches or only matched a replicated topic. Appliance Response: "503 No Subscription Match"
SubscriptionMatchError131 The client attempted to bind to a non-exclusive topic endpoint that is already bound with a different subscription.
SelectorMatchError132 The client attempted to bind to a non-exclusive topic endpoint that is already bound with a different ingress selector.
ReplayNotSupported133 Replay is not supported on the Solace Message Router
ReplayDisabled134 Replay is not enabled in the message-vpn
ClientInitiatedReplayNonExclusiveNotAllowed135 The client attempted to start replay on a flow bound to a non-exclusive endpoint
ClientInitiatedReplayInactiveFlowNotAllowed136 The client attempted to start replay on an inactive flow
ClientInitiatedReplayBrowserFlowNotAllowed137 The client attempted to bind with both {@link FlowHandle.PROPERTIES#BROWSER} enabled and {@link FlowHandle.PROPERTIES#REPLAY_START_LOCATION} set
ReplayTemporaryNotSupported138 Replay is not supported on temporary endpoints
UnknownStartLocation139 The client attempted to start a replay but provided an unknown start location type.
ReplayMessageUnavailable140 A replay in progress on a flow failed because messages to be replayed were trimmed from the replay log
ReplayStarted141 A replay was started on the queue/topic endpoint, either by another client or by an adminstrator on the message router.
ReplayCancelled142 A replay in progress on a flow was administratively cancelled, causing the flow to be unbound
ReplayStartTimeNotAvailable143 A replay was requested but the requested start time is not available in the replay log
ReplayMessageRejected144 The Solace Message Router attempted to replay a message, but the queue/topic endpoint rejected the message to the sender
ReplayLogModified145 A replay in progress on a flow failed because the replay log was modified
MismatchedEndpointErrorId146 Endpoint error ID in the bind request does not match the endpoint's error ID.
OutOfReplayResources147 A replay was requested, but the router does not have sufficient resources to fulfill the request, due to too many active replays.
TopicOrSelectorModifiedOnDurableTopicEndpoint148 A replay was in progress on a Durable Topic Endpoint (DTE) when its topic or selector was modified, causing the replay to fail.
ReplayFailed149 A replay in progress on a flow failed
CompressedSslNotSupported150 The client attempted to establish a Session or Flow with ssl and compression, but the capability is not supported by the appliance.
SharedSubscriptionsNotSupported151 The client attempted to add a shared subscription, but the capability is not supported by the appliance.
SharedSubscriptionsNotAllowed152 The client attempted to add a shared subscription on a client that is not permitted to use shared subscriptions.
SharedSubscriptionsEndpointNotAllowed153 The client attempted to add a shared subscription to a queue or topic endpoint.
ObjectDestroyed154 The operation cannot be completed because the object (context, session, flow) for the method has been destroyed in another thread.
DeliveryCountNotSupported155 The message was received from endpoint that does not support delivery count.
ReplayStartMessageUnavailable156 A replay was requested but, the requested start message is not available in the replay log.
MessageIdNotComparable157 Replication Group Message Id are not comparable. Messages must be published to the same broker or HA pair for their Replicaton Group Message Id to be comparable.
ReplayAnonymousNotSupported158 The client attempted to start replay on a flow bound to an anonymous queue.
BrowserNotSupportedOnPartitionedQueue159 Browser flows to Partitioned Queues are not permitted.
SelectorsNotSupportedOnPartitionedQueue160 Egress Selectors on Partitioned Queues are not permitted.
SyncReplicationIneligible161 A guaranteed message was rejected because the broker has been configured to reject messages when sync replication mode is ineligible. A transaction commit failed because replication became ineligible during the transaction. .
EndpointShutdown162 The client has attempted to publish to a topic that matched a queue or topic endpoint subscription which has its ingress flow shutdown.
AdAppAckFaildNotSupported163 Fail and Reject message settlement outcomes not supported on the Solace Message Router.
InvalidQueueOrTEDurability164 An attempt was made to bind to a durable Queue or Topic Endpoint with "non-durable" flow property.

See Also