Exception: Mongo::Error

Inherits:
StandardError
  • Object
show all
Includes:
ChangeStreamResumable, Labelable, Notable, WriteRetryable
Defined in:
build/ruby-driver-v2.19/lib/mongo/error.rb,
build/ruby-driver-v2.19/lib/mongo/error/parser.rb,
build/ruby-driver-v2.19/lib/mongo/error/notable.rb,
build/ruby-driver-v2.19/lib/mongo/error/kms_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/labelable.rb,
build/ruby-driver-v2.19/lib/mongo/error/auth_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/lint_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/pool_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/crypt_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_uri.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_file.rb,
build/ruby-driver-v2.19/lib/mongo/error/socket_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/client_closed.rb,
build/ruby-driver-v2.19/lib/mongo/error/closed_stream.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_nonce.rb,
build/ruby-driver-v2.19/lib/mongo/error/max_bson_size.rb,
build/ruby-driver-v2.19/lib/mongo/error/session_ended.rb,
build/ruby-driver-v2.19/lib/mongo/error/file_not_found.rb,
build/ruby-driver-v2.19/lib/mongo/error/no_srv_records.rb,
build/ruby-driver-v2.19/lib/mongo/error/handshake_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_address.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_session.rb,
build/ruby-driver-v2.19/lib/mongo/error/write_retryable.rb,
build/ruby-driver-v2.19/lib/mongo/error/bulk_write_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/extra_file_chunk.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_document.rb,
build/ruby-driver-v2.19/lib/mongo/error/max_message_size.rb,
build/ruby-driver-v2.19/lib/mongo/error/missing_password.rb,
build/ruby-driver-v2.19/lib/mongo/error/multi_index_drop.rb,
build/ruby-driver-v2.19/lib/mongo/error/unmet_dependency.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_signature.rb,
build/ruby-driver-v2.19/lib/mongo/error/mismatched_domain.rb,
build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb,
build/ruby-driver-v2.19/lib/mongo/error/pool_closed_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/pool_paused_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/server_not_usable.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_txt_record.rb,
build/ruby-driver-v2.19/lib/mongo/error/missing_connection.rb,
build/ruby-driver-v2.19/lib/mongo/error/missing_file_chunk.rb,
build/ruby-driver-v2.19/lib/mongo/error/missing_service_id.rb,
build/ruby-driver-v2.19/lib/mongo/error/pool_cleared_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/unsupported_option.rb,
build/ruby-driver-v2.19/lib/mongo/error/connection_perished.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_read_option.rb,
build/ruby-driver-v2.19/lib/mongo/error/need_primary_server.rb,
build/ruby-driver-v2.19/lib/mongo/error/no_server_available.rb,
build/ruby-driver-v2.19/lib/mongo/error/server_api_conflict.rb,
build/ruby-driver-v2.19/lib/mongo/error/unexpected_response.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_read_concern.rb,
build/ruby-driver-v2.19/lib/mongo/error/missing_resume_token.rb,
build/ruby-driver-v2.19/lib/mongo/error/raise_original_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/read_write_retryable.rb,
build/ruby-driver-v2.19/lib/mongo/error/sdam_error_detection.rb,
build/ruby-driver-v2.19/lib/mongo/error/socket_timeout_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/unknown_payload_type.rb,
build/ruby-driver-v2.19/lib/mongo/error/unsupported_features.rb,
build/ruby-driver-v2.19/lib/mongo/error/internal_driver_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_config_option.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_database_name.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_file_revision.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_min_pool_size.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_write_concern.rb,
build/ruby-driver-v2.19/lib/mongo/error/unsupported_collation.rb,
build/ruby-driver-v2.19/lib/mongo/error/connection_unavailable.rb,
build/ruby-driver-v2.19/lib/mongo/error/credential_check_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_bulk_operation.rb,
build/ruby-driver-v2.19/lib/mongo/error/sessions_not_supported.rb,
build/ruby-driver-v2.19/lib/mongo/error/change_stream_resumable.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_collection_name.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_update_document.rb,
build/ruby-driver-v2.19/lib/mongo/error/mongocryptd_spawn_error.rb,
build/ruby-driver-v2.19/lib/mongo/error/unexpected_chunk_length.rb,
build/ruby-driver-v2.19/lib/mongo/error/bad_load_balancer_target.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_application_name.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_cursor_operation.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_server_auth_host.rb,
build/ruby-driver-v2.19/lib/mongo/error/server_api_not_supported.rb,
build/ruby-driver-v2.19/lib/mongo/error/session_not_materialized.rb,
build/ruby-driver-v2.19/lib/mongo/error/unsupported_message_type.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_server_preference.rb,
build/ruby-driver-v2.19/lib/mongo/error/unsupported_array_filters.rb,
build/ruby-driver-v2.19/lib/mongo/error/server_certificate_revoked.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_bulk_operation_type.rb,
build/ruby-driver-v2.19/lib/mongo/error/connection_check_out_timeout.rb,
build/ruby-driver-v2.19/lib/mongo/error/insufficient_iteration_count.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_replacement_document.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_server_auth_response.rb,
build/ruby-driver-v2.19/lib/mongo/error/failed_string_prep_validation.rb,
build/ruby-driver-v2.19/lib/mongo/error/invalid_transaction_operation.rb,
build/ruby-driver-v2.19/lib/mongo/error/missing_scram_server_signature.rb,
build/ruby-driver-v2.19/lib/mongo/error/unchangeable_collection_option.rb,
build/ruby-driver-v2.19/lib/mongo/error/no_service_connection_available.rb,
build/ruby-driver-v2.19/lib/mongo/error/snapshot_session_invalid_server_version.rb,
build/ruby-driver-v2.19/lib/mongo/error/snapshot_session_transaction_prohibited.rb

Overview

Base error class for all Mongo related errors.

Since:

  • 2.0.0

Direct Known Subclasses

BadLoadBalancerTarget, BulkWriteError, ClientClosed, ClosedStream, ConnectionPerished, ConnectionUnavailable, CryptError, ExtraFileChunk, FailedStringPrepValidation, FileNotFound, HandshakeError, InsufficientIterationCount, InternalDriverError, InvalidAddress, InvalidApplicationName, InvalidBulkOperation, InvalidBulkOperationType, InvalidCollectionName, InvalidConfigOption, InvalidCursorOperation, InvalidDatabaseName, InvalidDocument, InvalidFile, InvalidFileRevision, InvalidMinPoolSize, InvalidNonce, InvalidReadConcern, InvalidReadOption, InvalidReplacementDocument, InvalidServerPreference, InvalidSession, InvalidSignature, InvalidTXTRecord, InvalidTransactionOperation, InvalidURI, InvalidUpdateDocument, InvalidWriteConcern, LintError, MaxBSONSize, MaxMessageSize, MismatchedDomain, MissingConnection, MissingFileChunk, MissingPassword, MissingResumeToken, MissingScramServerSignature, MissingServiceId, MultiIndexDrop, NeedPrimaryServer, NoSRVRecords, NoServerAvailable, NoServiceConnectionAvailable, OperationFailure, PoolError, ServerApiConflict, ServerApiNotSupported, ServerCertificateRevoked, ServerNotUsable, SessionEnded, SnapshotSessionInvalidServerVersion, SnapshotSessionTransactionProhibited, SocketError, SocketTimeoutError, UnchangeableCollectionOption, UnexpectedChunkLength, UnexpectedResponse, UnknownPayloadType, UnmetDependency, UnsupportedFeatures, UnsupportedMessageType, UnsupportedOption, Server::AppMetadata::Environment::MissingVariable, Server::AppMetadata::Environment::TooManyEnvironments, Server::AppMetadata::Environment::TypeMismatch, Server::AppMetadata::Environment::ValueTooLong

Defined Under Namespace

Modules: ChangeStreamResumable, Labelable, Notable, ReadWriteRetryable, SdamErrorDetection, WriteRetryable Classes: AuthError, BadLoadBalancerTarget, BulkWriteError, ClientClosed, ClosedStream, ConnectionCheckOutTimeout, ConnectionPerished, ConnectionUnavailable, CredentialCheckError, CryptError, ExtraFileChunk, FailedStringPrepValidation, FileNotFound, HandshakeError, InsufficientIterationCount, InternalDriverError, InvalidAddress, InvalidApplicationName, InvalidBulkOperation, InvalidBulkOperationType, InvalidCollectionName, InvalidConfigOption, InvalidCursorOperation, InvalidDatabaseName, InvalidDocument, InvalidFile, InvalidFileRevision, InvalidMinPoolSize, InvalidNonce, InvalidReadConcern, InvalidReadOption, InvalidReplacementDocument, InvalidServerAuthHost, InvalidServerAuthResponse, InvalidServerPreference, InvalidSession, InvalidSignature, InvalidTXTRecord, InvalidTransactionOperation, InvalidURI, InvalidUpdateDocument, InvalidWriteConcern, KmsError, LintError, MaxBSONSize, MaxMessageSize, MismatchedDomain, MissingConnection, MissingFileChunk, MissingPassword, MissingResumeToken, MissingScramServerSignature, MissingServiceId, MongocryptdSpawnError, MultiIndexDrop, NeedPrimaryServer, NoSRVRecords, NoServerAvailable, NoServiceConnectionAvailable, OperationFailure, Parser, PoolClearedError, PoolClosedError, PoolError, PoolPausedError, RaiseOriginalError, ServerApiConflict, ServerApiNotSupported, ServerCertificateRevoked, ServerNotUsable, SessionEnded, SessionNotMaterialized, SessionsNotSupported, SnapshotSessionInvalidServerVersion, SnapshotSessionTransactionProhibited, SocketError, SocketTimeoutError, UnchangeableCollectionOption, UnexpectedChunkLength, UnexpectedResponse, UnknownPayloadType, UnmetDependency, UnsupportedArrayFilters, UnsupportedCollation, UnsupportedFeatures, UnsupportedMessageType, UnsupportedOption

Constant Summary collapse

CODE =

The error code field.

Since:

  • 2.0.0

'code'.freeze
ERR =
Deprecated.

An error field, MongoDB < 2.6

Since:

  • 2.0.0

'$err'.freeze
ERROR =
Deprecated.

An error field, MongoDB < 2.4

Since:

  • 2.0.0

'err'.freeze
ERRMSG =
Deprecated.

The standard error message field, MongoDB 3.0+

Since:

  • 2.0.0

'errmsg'.freeze
WRITE_ERRORS =
Deprecated.

The constant for the writeErrors array.

Since:

  • 2.0.0

'writeErrors'.freeze
WRITE_CONCERN_ERROR =
Deprecated.

The constant for a write concern error.

Since:

  • 2.0.0

'writeConcernError'.freeze
WRITE_CONCERN_ERRORS =
Deprecated.

The constant for write concern errors.

Since:

  • 2.1.0

'writeConcernErrors'.freeze
UNKNOWN_ERROR =

Constant for an unknown error.

Since:

  • 2.0.0

8.freeze
BAD_VALUE =

Constant for a bad value error.

Since:

  • 2.0.0

2.freeze
CURSOR_NOT_FOUND =

Constant for a Cursor not found error.

Since:

  • 2.2.3

'Cursor not found.'
UNKNOWN_TRANSACTION_COMMIT_RESULT_LABEL =
Deprecated.

Error label describing commitTransaction errors that may or may not occur again if a commit is manually retried by the user.

Since:

  • 2.6.0

'UnknownTransactionCommitResult'.freeze
TRANSIENT_TRANSACTION_ERROR_LABEL =
Deprecated.

Error label describing errors that will likely not occur if a transaction is manually retried from the start.

Since:

  • 2.6.0

'TransientTransactionError'.freeze

Instance Attribute Summary

Attributes included from Notable

#connection_global_id, #generation, #service_id

Instance Method Summary collapse

Methods included from WriteRetryable

#write_retryable?

Methods included from Labelable

#add_label, #label?, #labels

Methods included from Notable

#add_note, #add_notes, #notes, #to_s

Constructor Details

#initialize(msg = nil) ⇒ Error

Returns a new instance of Error.

Since:

  • 2.0.0



112
113
114
115
# File 'build/ruby-driver-v2.19/lib/mongo/error.rb', line 112

def initialize(msg = nil)
  super
  @write_concern_error_labels = []
end

Instance Method Details

#change_stream_resumable?true, false

Can the change stream on which this error occurred be resumed, provided the operation that triggered this error was a getMore?

Examples:

Is the error resumable for the change stream?

error.change_stream_resumable?

Returns:

  • (true, false)

    Whether the error is resumable.

Since:

  • 2.6.0



94
95
96
# File 'build/ruby-driver-v2.19/lib/mongo/error.rb', line 94

def change_stream_resumable?
  false
end

#write_concern_error_label?(label) ⇒ Boolean

Does the write concern error have the given label?

Parameters:

  • label (String)

    The label to check for the presence of.

Returns:

  • (Boolean)

    Whether the write concern error has the given label.

Since:

  • 2.0.0



122
123
124
# File 'build/ruby-driver-v2.19/lib/mongo/error.rb', line 122

def write_concern_error_label?(label)
  @write_concern_error_labels.include?(label)
end

#write_concern_error_labelsArray<String>

The set of error labels associated with the write concern error.

Returns:

  • (Array<String>)

    The list of error labels.

Since:

  • 2.0.0



129
130
131
# File 'build/ruby-driver-v2.19/lib/mongo/error.rb', line 129

def write_concern_error_labels
  @write_concern_error_labels.dup
end