NATS C Client with JetStream and Streaming support  3.9.1
The nats.io C Client, Supported by Synadia Communications Inc.
status.h File Reference

Go to the source code of this file.

Enumerations

enum  natsConnStatus {
  NATS_CONN_STATUS_DISCONNECTED = 0 , NATS_CONN_STATUS_CONNECTING , NATS_CONN_STATUS_CONNECTED , NATS_CONN_STATUS_CLOSED ,
  NATS_CONN_STATUS_RECONNECTING , NATS_CONN_STATUS_DRAINING_SUBS , NATS_CONN_STATUS_DRAINING_PUBS
}
 The connection state. More...
 
enum  natsStatus {
  NATS_OK = 0 , NATS_ERR , NATS_PROTOCOL_ERROR , NATS_IO_ERROR ,
  NATS_LINE_TOO_LONG , NATS_CONNECTION_CLOSED , NATS_NO_SERVER , NATS_STALE_CONNECTION ,
  NATS_SECURE_CONNECTION_WANTED , NATS_SECURE_CONNECTION_REQUIRED , NATS_CONNECTION_DISCONNECTED , NATS_CONNECTION_AUTH_FAILED ,
  NATS_NOT_PERMITTED , NATS_NOT_FOUND , NATS_ADDRESS_MISSING , NATS_INVALID_SUBJECT ,
  NATS_INVALID_ARG , NATS_INVALID_SUBSCRIPTION , NATS_INVALID_TIMEOUT , NATS_ILLEGAL_STATE ,
  NATS_SLOW_CONSUMER , NATS_MAX_PAYLOAD , NATS_MAX_DELIVERED_MSGS , NATS_INSUFFICIENT_BUFFER ,
  NATS_NO_MEMORY , NATS_SYS_ERROR , NATS_TIMEOUT , NATS_FAILED_TO_INITIALIZE ,
  NATS_NOT_INITIALIZED , NATS_SSL_ERROR , NATS_NO_SERVER_SUPPORT , NATS_NOT_YET_CONNECTED ,
  NATS_DRAINING , NATS_INVALID_QUEUE_NAME , NATS_NO_RESPONDERS , NATS_MISMATCH ,
  NATS_MISSED_HEARTBEAT , NATS_LIMIT_REACHED
}
 Status returned by most of the APIs. More...
 
enum  jsErrCode {
  JSAccountResourcesExceededErr = 10002 , JSBadRequestErr = 10003 , JSClusterIncompleteErr = 10004 , JSClusterNoPeersErr = 10005 ,
  JSClusterNotActiveErr = 10006 , JSClusterNotAssignedErr = 10007 , JSClusterNotAvailErr = 10008 , JSClusterNotLeaderErr = 10009 ,
  JSClusterRequiredErr = 10010 , JSClusterTagsErr = 10011 , JSConsumerCreateErr = 10012 , JSConsumerNameExistErr = 10013 ,
  JSConsumerNotFoundErr = 10014 , JSSnapshotDeliverSubjectInvalidErr = 10015 , JSConsumerDurableNameNotInSubjectErr = 10016 , JSConsumerDurableNameNotMatchSubjectErr = 10017 ,
  JSConsumerDurableNameNotSetErr = 10018 , JSConsumerEphemeralWithDurableInSubjectErr = 10019 , JSConsumerEphemeralWithDurableNameErr = 10020 , JSStreamExternalApiOverlapErr = 10021 ,
  JSStreamExternalDelPrefixOverlapsErr = 10022 , JSInsufficientResourcesErr = 10023 , JSStreamInvalidExternalDeliverySubjErr = 10024 , JSInvalidJSONErr = 10025 ,
  JSMaximumConsumersLimitErr = 10026 , JSMaximumStreamsLimitErr = 10027 , JSMemoryResourcesExceededErr = 10028 , JSMirrorConsumerSetupFailedErr = 10029 ,
  JSMirrorMaxMessageSizeTooBigErr = 10030 , JSMirrorWithSourcesErr = 10031 , JSMirrorWithStartSeqAndTimeErr = 10032 , JSMirrorWithSubjectFiltersErr = 10033 ,
  JSMirrorWithSubjectsErr = 10034 , JSNoAccountErr = 10035 , JSClusterUnSupportFeatureErr = 10036 , JSNoMessageFoundErr = 10037 ,
  JSNotEmptyRequestErr = 10038 , JSNotEnabledForAccountErr = 10039 , JSClusterPeerNotMemberErr = 10040 , JSRaftGeneralErr = 10041 ,
  JSRestoreSubscribeFailedErr = 10042 , JSSequenceNotFoundErr = 10043 , JSClusterServerNotMemberErr = 10044 , JSSourceConsumerSetupFailedErr = 10045 ,
  JSSourceMaxMessageSizeTooBigErr = 10046 , JSStorageResourcesExceededErr = 10047 , JSStreamAssignmentErr = 10048 , JSStreamCreateErr = 10049 ,
  JSStreamDeleteErr = 10050 , JSStreamGeneralError = 10051 , JSStreamInvalidConfig = 10052 , JSStreamLimitsErr = 10053 ,
  JSStreamMessageExceedsMaximumErr = 10054 , JSStreamMirrorNotUpdatableErr = 10055 , JSStreamMismatchErr = 10056 , JSStreamMsgDeleteFailed = 10057 ,
  JSStreamNameExistErr = 10058 , JSStreamNotFoundErr = 10059 , JSStreamNotMatchErr = 10060 , JSStreamReplicasNotUpdatableErr = 10061 ,
  JSStreamRestoreErr = 10062 , JSStreamSequenceNotMatchErr = 10063 , JSStreamSnapshotErr = 10064 , JSStreamSubjectOverlapErr = 10065 ,
  JSStreamTemplateCreateErr = 10066 , JSStreamTemplateDeleteErr = 10067 , JSStreamTemplateNotFoundErr = 10068 , JSStreamUpdateErr = 10069 ,
  JSStreamWrongLastMsgIDErr = 10070 , JSStreamWrongLastSequenceErr = 10071 , JSTempStorageFailedErr = 10072 , JSTemplateNameNotMatchSubjectErr = 10073 ,
  JSStreamReplicasNotSupportedErr = 10074 , JSPeerRemapErr = 10075 , JSNotEnabledErr = 10076 , JSStreamStoreFailedErr = 10077 ,
  JSConsumerConfigRequiredErr = 10078 , JSConsumerDeliverToWildcardsErr = 10079 , JSConsumerPushMaxWaitingErr = 10080 , JSConsumerDeliverCycleErr = 10081 ,
  JSConsumerMaxPendingAckPolicyRequiredErr = 10082 , JSConsumerSmallHeartbeatErr = 10083 , JSConsumerPullRequiresAckErr = 10084 , JSConsumerPullNotDurableErr = 10085 ,
  JSConsumerPullWithRateLimitErr = 10086 , JSConsumerMaxWaitingNegativeErr = 10087 , JSConsumerHBRequiresPushErr = 10088 , JSConsumerFCRequiresPushErr = 10089 ,
  JSConsumerDirectRequiresPushErr = 10090 , JSConsumerDirectRequiresEphemeralErr = 10091 , JSConsumerOnMappedErr = 10092 , JSConsumerFilterNotSubsetErr = 10093 ,
  JSConsumerInvalidPolicyErr = 10094 , JSConsumerInvalidSamplingErr = 10095 , JSStreamInvalidErr = 10096 , JSConsumerWQRequiresExplicitAckErr = 10098 ,
  JSConsumerWQMultipleUnfilteredErr = 10099 , JSConsumerWQConsumerNotUniqueErr = 10100 , JSConsumerWQConsumerNotDeliverAllErr = 10101 , JSConsumerNameTooLongErr = 10102 ,
  JSConsumerBadDurableNameErr = 10103 , JSConsumerStoreFailedErr = 10104 , JSConsumerExistingActiveErr = 10105 , JSConsumerReplacementWithDifferentNameErr = 10106 ,
  JSConsumerDescriptionTooLongErr = 10107 , JSConsumerWithFlowControlNeedsHeartbeatsErr = 10108 , JSStreamSealedErr = 10109 , JSStreamPurgeFailedErr = 10110 ,
  JSStreamRollupFailedErr = 10111 , JSConsumerInvalidDeliverSubjectErr = 10112 , JSStreamMaxBytesRequiredErr = 10113 , JSConsumerMaxRequestBatchNegativeErr = 10114 ,
  JSConsumerMaxRequestExpiresToSmallErr = 10115 , JSConsumerMaxDeliverBackoffErr = 10116 , JSStreamInfoMaxSubjectsErr = 10117 , JSStreamOfflineErr = 10118 ,
  JSConsumerOfflineErr = 10119 , JSNoLimitsErr = 10120 , JSConsumerMaxPendingAckExcessErr = 10121 , JSStreamMaxStreamBytesExceededErr = 10122 ,
  JSStreamMoveAndScaleErr = 10123 , JSStreamMoveInProgressErr = 10124 , JSConsumerMaxRequestBatchExceededErr = 10125 , JSConsumerReplicasExceedsStreamErr = 10126 ,
  JSConsumerNameContainsPathSeparatorsErr = 10127 , JSStreamNameContainsPathSeparatorsErr = 10128 , JSStreamMoveNotInProgressErr = 10129 , JSStreamNameExistRestoreFailedErr = 10130 ,
  JSConsumerCreateFilterSubjectMismatchErr = 10131 , JSConsumerCreateDurableAndNameMismatchErr = 10132 , JSReplicasCountCannotBeNegativeErr = 10133
}
 

Enumeration Type Documentation

◆ natsConnStatus

Enumerator
NATS_CONN_STATUS_DISCONNECTED 

The connection has been disconnected.

NATS_CONN_STATUS_CONNECTING 

The connection is in the process or connecting.

NATS_CONN_STATUS_CONNECTED 

The connection is connected.

NATS_CONN_STATUS_CLOSED 

The connection is closed.

NATS_CONN_STATUS_RECONNECTING 

The connection is in the process or reconnecting.

NATS_CONN_STATUS_DRAINING_SUBS 

The connection is draining subscriptions.

NATS_CONN_STATUS_DRAINING_PUBS 

The connection is draining publishers.

◆ natsStatus

enum natsStatus
Enumerator
NATS_OK 

Success.

NATS_ERR 

Generic error.

NATS_PROTOCOL_ERROR 

Error when parsing a protocol message, or not getting the expected message.

NATS_IO_ERROR 

IO Error (network communication).

NATS_LINE_TOO_LONG 

The protocol message read from the socket does not fit in the read buffer.

NATS_CONNECTION_CLOSED 

Operation on this connection failed because the connection is closed.

NATS_NO_SERVER 

Unable to connect, the server could not be reached or is not running.

NATS_STALE_CONNECTION 

The server closed our connection because it did not receive PINGs at the expected interval.

NATS_SECURE_CONNECTION_WANTED 

The client is configured to use TLS, but the server is not.

NATS_SECURE_CONNECTION_REQUIRED 

The server expects a TLS connection.

NATS_CONNECTION_DISCONNECTED 

The connection was disconnected. Depending on the configuration, the connection may reconnect.

NATS_CONNECTION_AUTH_FAILED 

The connection failed due to authentication error.

NATS_NOT_PERMITTED 

The action is not permitted.

NATS_NOT_FOUND 

An action could not complete because something was not found. So far, this is an internal error.

NATS_ADDRESS_MISSING 

Incorrect URL. For instance no host specified in the URL.

NATS_INVALID_SUBJECT 

Invalid subject, for instance NULL or empty string.

NATS_INVALID_ARG 

An invalid argument is passed to a function. For instance passing NULL to an API that does not accept this value.

NATS_INVALID_SUBSCRIPTION 

The call to a subscription function fails because the subscription has previously been closed.

NATS_INVALID_TIMEOUT 

Timeout must be positive numbers.

NATS_ILLEGAL_STATE 

An unexpected state, for instance calling natsSubscription_NextMsg() on an asynchronous subscriber.

NATS_SLOW_CONSUMER 

The maximum number of messages waiting to be delivered has been reached. Messages are dropped.

NATS_MAX_PAYLOAD 

Attempt to send a payload larger than the maximum allowed by the NATS Server.

NATS_MAX_DELIVERED_MSGS 

Attempt to receive more messages than allowed, for instance because of natsSubscription_AutoUnsubscribe().

NATS_INSUFFICIENT_BUFFER 

A buffer is not large enough to accommodate the data.

NATS_NO_MEMORY 

An operation could not complete because of insufficient memory.

NATS_SYS_ERROR 

Some system function returned an error.

NATS_TIMEOUT 

An operation timed-out. For instance natsSubscription_NextMsg().

NATS_FAILED_TO_INITIALIZE 

The library failed to initialize.

NATS_NOT_INITIALIZED 

The library is not yet initialized.

NATS_SSL_ERROR 

An SSL error occurred when trying to establish a connection.

NATS_NO_SERVER_SUPPORT 

The server does not support this action.

NATS_NOT_YET_CONNECTED 

A connection could not be immediately established and natsOptions_SetRetryOnFailedConnect() specified a connected callback. The connect is retried asynchronously.

NATS_DRAINING 

A connection and/or subscription entered the draining mode. Some operations will fail when in that mode.

NATS_INVALID_QUEUE_NAME 

An invalid queue name was passed when creating a queue subscription.

NATS_NO_RESPONDERS 

No responders were running when the server received the request.

NATS_MISMATCH 

For JetStream subscriptions, it means that a consumer sequence mismatch was discovered.

NATS_MISSED_HEARTBEAT 

For JetStream subscriptions, it means that the library detected that server heartbeats have been missed.

NATS_LIMIT_REACHED 

Attempt to receive messages than allowed by the byte limit, for instance in js_PullSubscribeAsync().

◆ jsErrCode

enum jsErrCode
Enumerator
JSAccountResourcesExceededErr 

Resource limits exceeded for account.

JSBadRequestErr 

Bad request.

JSClusterIncompleteErr 

Incomplete results.

JSClusterNoPeersErr 

No suitable peers for placement.

JSClusterNotActiveErr 

JetStream not in clustered mode.

JSClusterNotAssignedErr 

JetStream cluster not assigned to this server.

JSClusterNotAvailErr 

JetStream system temporarily unavailable.

JSClusterNotLeaderErr 

JetStream cluster can not handle request.

JSClusterRequiredErr 

JetStream clustering support required.

JSClusterTagsErr 

Tags placement not supported for operation.

JSConsumerCreateErr 

General consumer creation failure string.

JSConsumerNameExistErr 

Consumer name already in use.

JSConsumerNotFoundErr 

Consumer not found.

JSSnapshotDeliverSubjectInvalidErr 

Deliver subject not valid.

JSConsumerDurableNameNotInSubjectErr 

Consumer expected to be durable but no durable name set in subject.

JSConsumerDurableNameNotMatchSubjectErr 

Consumer name in subject does not match durable name in request.

JSConsumerDurableNameNotSetErr 

Consumer expected to be durable but a durable name was not set.

JSConsumerEphemeralWithDurableInSubjectErr 

Consumer expected to be ephemeral but detected a durable name set in subject.

JSConsumerEphemeralWithDurableNameErr 

Consumer expected to be ephemeral but a durable name was set in request.

JSStreamExternalApiOverlapErr 

Stream external api prefix must not overlap.

JSStreamExternalDelPrefixOverlapsErr 

Stream external delivery prefix overlaps with stream subject.

JSInsufficientResourcesErr 

Insufficient resources.

JSStreamInvalidExternalDeliverySubjErr 

Stream external delivery prefix must not contain wildcards.

JSInvalidJSONErr 

Invalid JSON.

JSMaximumConsumersLimitErr 

Maximum consumers exceeds account limit.

JSMaximumStreamsLimitErr 

Maximum number of streams reached.

JSMemoryResourcesExceededErr 

Insufficient memory resources available.

JSMirrorConsumerSetupFailedErr 

Generic mirror consumer setup failure.

JSMirrorMaxMessageSizeTooBigErr 

Stream mirror must have max message size >= source.

JSMirrorWithSourcesErr 

Stream mirrors can not also contain other sources.

JSMirrorWithStartSeqAndTimeErr 

Stream mirrors can not have both start seq and start time configured.

JSMirrorWithSubjectFiltersErr 

Stream mirrors can not contain filtered subjects.

JSMirrorWithSubjectsErr 

Stream mirrors can not also contain subjects.

JSNoAccountErr 

Account not found.

JSClusterUnSupportFeatureErr 

Not currently supported in clustered mode.

JSNoMessageFoundErr 

No message found.

JSNotEmptyRequestErr 

Expected an empty request payload.

JSNotEnabledForAccountErr 

JetStream not enabled for account.

JSClusterPeerNotMemberErr 

Peer not a member.

JSRaftGeneralErr 

General RAFT error.

JSRestoreSubscribeFailedErr 

JetStream unable to subscribe to restore snapshot.

JSSequenceNotFoundErr 

Sequence not found.

JSClusterServerNotMemberErr 

Server is not a member of the cluster.

JSSourceConsumerSetupFailedErr 

General source consumer setup failure.

JSSourceMaxMessageSizeTooBigErr 

Stream source must have max message size >= target.

JSStorageResourcesExceededErr 

Insufficient storage resources available.

JSStreamAssignmentErr 

Generic stream assignment error.

JSStreamCreateErr 

Generic stream creation error.

JSStreamDeleteErr 

General stream deletion error.

JSStreamGeneralError 

General stream failure.

JSStreamInvalidConfig 

Stream configuration validation error.

JSStreamLimitsErr 

General stream limits exceeded error.

JSStreamMessageExceedsMaximumErr 

Message size exceeds maximum allowed.

JSStreamMirrorNotUpdatableErr 

Mirror configuration can not be updated.

JSStreamMismatchErr 

Stream name in subject does not match request.

JSStreamMsgDeleteFailed 

Generic message deletion failure error.

JSStreamNameExistErr 

Stream name already in use.

JSStreamNotFoundErr 

Stream not found.

JSStreamNotMatchErr 

Expected stream does not match.

JSStreamReplicasNotUpdatableErr 

Replicas configuration can not be updated.

JSStreamRestoreErr 

Restore failed.

JSStreamSequenceNotMatchErr 

Expected stream sequence does not match.

JSStreamSnapshotErr 

Snapshot failed.

JSStreamSubjectOverlapErr 

Subjects overlap with an existing stream.

JSStreamTemplateCreateErr 

Generic template creation failed.

JSStreamTemplateDeleteErr 

Generic stream template deletion failed error.

JSStreamTemplateNotFoundErr 

Template not found.

JSStreamUpdateErr 

Generic stream update error.

JSStreamWrongLastMsgIDErr 

Wrong last msg ID.

JSStreamWrongLastSequenceErr 

Wrong last sequence.

JSTempStorageFailedErr 

JetStream unable to open temp storage for restore.

JSTemplateNameNotMatchSubjectErr 

Template name in subject does not match request.

JSStreamReplicasNotSupportedErr 

Replicas > 1 not supported in non-clustered mode.

JSPeerRemapErr 

Peer remap failed.

JSNotEnabledErr 

JetStream not enabled.

JSStreamStoreFailedErr 

Generic error when storing a message failed.

JSConsumerConfigRequiredErr 

Consumer config required.

JSConsumerDeliverToWildcardsErr 

Consumer deliver subject has wildcards.

JSConsumerPushMaxWaitingErr 

Consumer in push mode can not set max waiting.

JSConsumerDeliverCycleErr 

Consumer deliver subject forms a cycle.

JSConsumerMaxPendingAckPolicyRequiredErr 

Consumer requires ack policy for max ack pending.

JSConsumerSmallHeartbeatErr 

Consumer idle heartbeat needs to be >= 100ms.

JSConsumerPullRequiresAckErr 

Consumer in pull mode requires explicit ack policy.

JSConsumerPullNotDurableErr 

Consumer in pull mode requires a durable name.

JSConsumerPullWithRateLimitErr 

Consumer in pull mode can not have rate limit set.

JSConsumerMaxWaitingNegativeErr 

Consumer max waiting needs to be positive.

JSConsumerHBRequiresPushErr 

Consumer idle heartbeat requires a push based consumer.

JSConsumerFCRequiresPushErr 

Consumer flow control requires a push based consumer.

JSConsumerDirectRequiresPushErr 

Consumer direct requires a push based consumer.

JSConsumerDirectRequiresEphemeralErr 

Consumer direct requires an ephemeral consumer.

JSConsumerOnMappedErr 

Consumer direct on a mapped consumer.

JSConsumerFilterNotSubsetErr 

Consumer filter subject is not a valid subset of the interest subjects.

JSConsumerInvalidPolicyErr 

Generic delivery policy error.

JSConsumerInvalidSamplingErr 

Failed to parse consumer sampling configuration.

JSStreamInvalidErr 

Stream not valid.

JSConsumerWQRequiresExplicitAckErr 

Workqueue stream requires explicit ack.

JSConsumerWQMultipleUnfilteredErr 

Multiple non-filtered consumers not allowed on workqueue stream.

JSConsumerWQConsumerNotUniqueErr 

Filtered consumer not unique on workqueue stream.

JSConsumerWQConsumerNotDeliverAllErr 

Consumer must be deliver all on workqueue stream.

JSConsumerNameTooLongErr 

Consumer name is too long.

JSConsumerBadDurableNameErr 

Durable name can not contain '.', '*', '>'.

JSConsumerStoreFailedErr 

Error creating store for consumer.

JSConsumerExistingActiveErr 

Consumer already exists and is still active.

JSConsumerReplacementWithDifferentNameErr 

Consumer replacement durable config not the same.

JSConsumerDescriptionTooLongErr 

Consumer description is too long.

JSConsumerWithFlowControlNeedsHeartbeatsErr 

Consumer with flow control also needs heartbeats.

JSStreamSealedErr 

Invalid operation on sealed stream.

JSStreamPurgeFailedErr 

Generic stream purge failure.

JSStreamRollupFailedErr 

Generic stream rollup failure.

JSConsumerInvalidDeliverSubjectErr 

Invalid push consumer deliver subject.

JSStreamMaxBytesRequiredErr 

Account requires a stream config to have max bytes set.

JSConsumerMaxRequestBatchNegativeErr 

Consumer max request batch needs to be > 0.

JSConsumerMaxRequestExpiresToSmallErr 

Consumer max request expires needs to be > 1ms.

JSConsumerMaxDeliverBackoffErr 

Max deliver is required to be > length of backoff values.

JSStreamInfoMaxSubjectsErr 

Subject details would exceed maximum allowed.

JSStreamOfflineErr 

Stream is offline.

JSConsumerOfflineErr 

Consumer is offline.

JSNoLimitsErr 

No JetStream default or applicable tiered limit present.

JSConsumerMaxPendingAckExcessErr 

Consumer max ack pending exceeds system limit.

JSStreamMaxStreamBytesExceededErr 

Stream max bytes exceeds account limit max stream bytes.

JSStreamMoveAndScaleErr 

Cannot move and scale a stream in a single update.

JSStreamMoveInProgressErr 

Stream move already in progress.

JSConsumerMaxRequestBatchExceededErr 

Consumer max request batch exceeds server limit.

JSConsumerReplicasExceedsStreamErr 

Consumer config replica count exceeds parent stream.

JSConsumerNameContainsPathSeparatorsErr 

Consumer name can not contain path separators.

JSStreamNameContainsPathSeparatorsErr 

Stream name can not contain path separators.

JSStreamMoveNotInProgressErr 

Stream move not in progress.

JSStreamNameExistRestoreFailedErr 

Stream name already in use, cannot restore.

JSConsumerCreateFilterSubjectMismatchErr 

Consumer create request did not match filtered subject from create subject.

JSConsumerCreateDurableAndNameMismatchErr 

Consumer Durable and Name have to be equal if both are provided.

JSReplicasCountCannotBeNegativeErr 

Replicas count cannot be negative.