Provided by: libmongoc-doc_1.21.0-1build1_all bug

NAME

       mongoc_errors - Error Reporting « index

DESCRIPTION

       Many  C  Driver functions report errors by returning false or -1 and filling out a bson_error_t structure
       with an error domain, error code, and message. Use domain to  determine  which  subsystem  generated  the
       error, and code for the specific error. message is a human-readable error description.

       SEE ALSO:
          Handling Errors in libbson.

─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  Domain                                Code                                           Description
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_CLIENT                   MONGOC_ERROR_CLIENT_TOO_BIG                    You  tried to send a message
                                                                                       larger than the server's max
                                                                                       message size.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
                                        MONGOC_ERROR_CLIENT_AUTHENTICATE               Wrong    credentials,     or
                                                                                       failure sending or receiving
                                                                                       authentication messages.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
                                        MONGOC_ERROR_CLIENT_NO_ACCEPTABLE_PEER         You  tried an TLS connection
                                                                                       but the driver was not built
                                                                                       with TLS.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
                                        MONGOC_ERROR_CLIENT_IN_EXHAUST                 You   began   iterating   an
                                                                                       exhaust  cursor,  then tried
                                                                                       to begin  another  operation
                                                                                       with         the        same
                                                                                       mongoc_client_t.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
                                        MONGOC_ERROR_CLIENT_SESSION_FAILURE            Failure related to  creating
                                                                                       or using a logical session.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
                                        MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG     Failure related to arguments
                                                                                       passed   when   initializing
                                                                                       Client-Side   Field    Level
                                                                                       Encryption.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
                                        MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE   Failure      related      to
                                                                                       Client-Side   Field    Level
                                                                                       Encryption.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
                                        MONGOC_ERROR_CLIENT_INVALID_LOAD_BALANCER      You  attempted to connect to
                                                                                       a MongoDB  server  behind  a
                                                                                       load   balancer,   but   the
                                                                                       server  does  not  advertize
                                                                                       load balanced support.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_STREAM                   MONGOC_ERROR_STREAM_NAME_RESOLUTION            DNS failure.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
                                        MONGOC_ERROR_STREAM_SOCKET                     Timeout  communicating  with
                                                                                       server,    or     connection
                                                                                       closed.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
                                        MONGOC_ERROR_STREAM_CONNECT                    Failed to connect to server.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_PROTOCOL                 MONGOC_ERROR_PROTOCOL_INVALID_REPLY            Corrupt     response    from
                                                                                       server.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
                                        MONGOC_ERROR_PROTOCOL_BAD_WIRE_VERSION         The server  version  is  too
                                                                                       old    or    too    new   to
                                                                                       communicate with the driver.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_CURSOR                   MONGOC_ERROR_CURSOR_INVALID_CURSOR             You passed bad arguments  to
                                                                                       mongoc_collection_find_with_opts,
                                                                                       or         you        called
                                                                                       mongoc_cursor_next   on    a
                                                                                       completed  or failed cursor,
                                                                                       or the cursor timed  out  on
                                                                                       the server.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
                                        MONGOC_ERROR_CHANGE_STREAM_NO_RESUME_TOKEN     A  resume  token was not returned
                                                                                       in   a   document   found    with
                                                                                       mongoc_change_stream_next
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_QUERY                    MONGOC_ERROR_QUERY_FAILURE                     Error API Version 1: Server error
                                                                                       from command or query. The server
                                                                                       error message is in message.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_SERVER                   MONGOC_ERROR_QUERY_FAILURE                     Error API Version 2: Server error
                                                                                       from command or query. The server
                                                                                       error message is in message.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_SASL                     A SASL error code.                             man  sasl_errors  for  a  list of
                                                                                       codes.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_BSON                     MONGOC_ERROR_BSON_INVALID                      You   passed   an   invalid    or
                                                                                       oversized   BSON  document  as  a
                                                                                       parameter,       or        called
                                                                                       mongoc_collection_create_index
                                                                                       with  invalid keys, or the server
                                                                                       reply was corrupt.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_NAMESPACE                MONGOC_ERROR_NAMESPACE_INVALID                 You tried to create a  collection
                                                                                       with an invalid name.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_COMMAND                  MONGOC_ERROR_COMMAND_INVALID_ARG               Many  functions  set  this  error
                                                                                       code when passed bad  parameters.
                                                                                       Print   the   error  message  for
                                                                                       details.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
                                        MONGOC_ERROR_PROTOCOL_BAD_WIRE_VERSION         You tried to use a command option
                                                                                       the server does not support.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
                                        MONGOC_ERROR_DUPLICATE_KEY                     An  insert   or   update   failed
                                                                                       because  because  of  a duplicate
                                                                                       _id   or    other    unique-index
                                                                                       violation.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
                                        MONGOC_ERROR_MAX_TIME_MS_EXPIRED               The   operation   failed  because
                                                                                       maxTimeMS expired.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
                                        MONGOC_ERROR_SERVER_SELECTION_INVALID_ID       The  serverId   option   for   an
                                                                                       operation   conflicts   with  the
                                                                                       pinned    server     for     that
                                                                                       operation's     client    session
                                                                                       (denoted   by    the    sessionId
                                                                                       option).
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_COMMAND                  Error code from server.                        Error API Version 1: Server error
                                                                                       from  a command. The server error
                                                                                       message is in message.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_SERVER                   Error code from server.                        Error API Version 2: Server error
                                                                                       from a command. The server  error
                                                                                       message is in message.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_COLLECTION               MONGOC_ERROR_COLLECTION_INSERT_FAILED,         Invalid   or   empty   input   to
                                        MONGOC_ERROR_COLLECTION_UPDATE_FAILED,         mongoc_collection_insert_one,
                                        MONGOC_ERROR_COLLECTION_DELETE_FAILED.         mongoc_collection_insert_bulk,
                                                                                       mongoc_collection_update_one,
                                                                                       mongoc_collection_update_many,
                                                                                       mongoc_collection_replace_one,
                                                                                       mongoc_collection_delete_one,  or
                                                                                       mongoc_collection_delete_many.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_COLLECTION               Error code from server.                        Error API Version 1: Server error
                                                                                       from
                                                                                       mongoc_collection_insert_one,
                                                                                       mongoc_collection_insert_bulk,
                                                                                       mongoc_collection_update_one,
                                                                                       mongoc_collection_update_many,
                                                                                       mongoc_collection_replace_one,
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_SERVER                   Error code from server.                        Error API Version 2: Server error
                                                                                       from
                                                                                       mongoc_collection_insert_one,
                                                                                       mongoc_collection_insert_bulk,
                                                                                       mongoc_collection_update_one,
                                                                                       mongoc_collection_update_many,
                                                                                       mongoc_collection_replace_one,
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  MONGOC_ERROR_GRIDFS                   MONGOC_ERROR_GRIDFS_CHUNK_MISSING              The  GridFS  file  is  missing  a
                                                                                       document    in     its     chunks
                                                                                       collection.
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│                                     │ MONGOC_ERROR_GRIDFS_CORRUPT                  │ A data inconsistency was detected        │
├─────────────────────────────────────┼──────────────────────────────────────────────┼──────────────────────────────────────────┤
│                                     │ MONGOC_ERROR_GRIDFS_INVALID_FILENAME         │ You  passed  a  NULL  filename to        │
│                                     │                                              │ mongoc_gridfs_remove_by_filename.        │
├─────────────────────────────────────┼──────────────────────────────────────────────┼──────────────────────────────────────────┤
│                                     │ MONGOC_ERROR_GRIDFS_PROTOCOL_ERROR           │ You                        called        │
│                                     │                                              │ mongoc_gridfs_file_set_id   after        │
│                                     │                                              │ mongoc_gridfs_file_save, or tried        │
├─────────────────────────────────────┼──────────────────────────────────────────────┼──────────────────────────────────────────┤
│                                     │ MONGOC_ERROR_GRIDFS_BUCKET_FILE_NOT_FOUND    │ A  GridFS  file  is  missing from        │
│                                     │                                              │ files collection.                        │
├─────────────────────────────────────┼──────────────────────────────────────────────┼──────────────────────────────────────────┤
│                                     │ MONGOC_ERROR_GRIDFS_BUCKET_STREAM            │ An error  occurred  on  a  stream        │
│                                     │                                              │ mongoc_gridfs_bucket_upload_from_stream. │
├─────────────────────────────────────┼──────────────────────────────────────────────┼──────────────────────────────────────────┤
│ MONGOC_ERROR_SCRAMMONGOC_ERROR_SCRAM_PROTOCOL_ERROR            │ Failure in SCRAM-SHA-1 authentication.   │
├─────────────────────────────────────┼──────────────────────────────────────────────┼──────────────────────────────────────────┤
│ MONGOC_ERROR_SERVER_SELECTIONMONGOC_ERROR_SERVER_SELECTION_FAILURE        │ No  replica  set  member  or  mongos  is │
│                                     │                                              │ mongoc_read_prefs_t.                     │
├─────────────────────────────────────┼──────────────────────────────────────────────┼──────────────────────────────────────────┤
│ MONGOC_ERROR_WRITE_CONCERNError code from server.                      │ There  was  a  write  concern  error  or │
├─────────────────────────────────────┼──────────────────────────────────────────────┼──────────────────────────────────────────┤
│ MONGOC_ERROR_TRANSACTIONMONGOC_ERROR_TRANSACTION_INVALID             │ You attempted  to  start  a  transaction │
├─────────────────────────────────────┼──────────────────────────────────────────────┼──────────────────────────────────────────┤
│ MONGOC_ERROR_CLIENT_SIDE_ENCRYPTION │ Error code produced by libmongocrypt.        │ An   error   occurred   in  the  library │
└─────────────────────────────────────┴──────────────────────────────────────────────┴──────────────────────────────────────────┘

ERROR LABELS

       In some cases your application must make decisions based  on  what  category  of  error  the  driver  has
       returned,  but  these  categories  do not correspond perfectly to an error domain or code. In such cases,
       error labels provide a reliable way to determine how your application should respond to an error.

       Any C Driver function that has a bson_t out-parameter named reply may include error labels to the  reply,
       in the form of a BSON field named "errorLabels" containing an array of strings:

          { "errorLabels": [ "TransientTransactionError" ] }

       Use    mongoc_error_has_label    to    test    if    a    reply    contains   a   specific   label.   See
       mongoc_client_session_start_transaction for example code that demonstrates the use  of  error  labels  in
       application logic.

       The following error labels are currently defined. Future versions of MongoDB may introduce new labels.

   TransientTransactionError
       Within  a  multi-document  transaction, certain errors can leave the transaction in an unknown or aborted
       state. These include write conflicts, primary stepdowns, and network errors. In response, the application
       should abort the transaction and try the same sequence of operations again in a new transaction.

   UnknownTransactionCommitResult
       When mongoc_client_session_commit_transaction encounters a network error or certain server errors, it  is
       not  known  whether  the transaction was committed. Applications should attempt to commit the transaction
       again   until:   the   commit   succeeds,   the   commit   fails    with    an    error    not    labeled
       "UnknownTransactionCommitResult", or the application chooses to give up.

SETTING THE ERROR API VERSION

       The  driver's error reporting began with a design flaw: when the error domain is MONGOC_ERROR_COLLECTION,
       MONGOC_ERROR_QUERY, or MONGOC_ERROR_COMMAND, the error code  might  originate  from  the  server  or  the
       driver.  An  application cannot always know where an error originated, and therefore cannot tell what the
       code means.

       For example, if mongoc_collection_update_one sets the error's domain to MONGOC_ERROR_COLLECTION  and  its
       code   to   24,   the   application   cannot   know   whether   24  is  the  generic  driver  error  code
       MONGOC_ERROR_COLLECTION_UPDATE_FAILED or the specific server error code "LockTimeout".

       To fix this flaw while preserving  backward  compatibility,  the  C  Driver  1.4  introduces  "Error  API
       Versions".  Version 1, the default Error API Version, maintains the flawed behavior. Version 2 adds a new
       error domain, MONGOC_ERROR_SERVER. In Version 2, error codes originating on the server always have  error
       domain  MONGOC_ERROR_SERVER or MONGOC_ERROR_WRITE_CONCERN. When the driver uses Version 2 the application
       can always determine the origin and meaning of error codes. New applications should use  Version  2,  and
       existing applications should be updated to use Version 2 as well.
       ┌─────────────────────────────────────────────┬────────────────────────────┬────────────────────────────┐
       │ Error Source                                │ API Version 1              │ API Version 2              │
       ├─────────────────────────────────────────────┼────────────────────────────┼────────────────────────────┤
       │ mongoc_cursor_errorMONGOC_ERROR_QUERYMONGOC_ERROR_SERVER        │
       ├─────────────────────────────────────────────┼────────────────────────────┼────────────────────────────┤
       │ mongoc_client_command_with_opts,            │ MONGOC_ERROR_QUERYMONGOC_ERROR_SERVER        │
       │ mongoc_database_command_with_opts,          │                            │                            │
       │ and other command functions                 │                            │                            │
       ├─────────────────────────────────────────────┼────────────────────────────┼────────────────────────────┤
       │ mongoc_collection_count_with_optsMONGOC_ERROR_QUERYMONGOC_ERROR_SERVER        │
       │ mongoc_client_get_database_names_with_opts, │                            │                            │
       │ and other command helper functions          │                            │                            │
       ├─────────────────────────────────────────────┼────────────────────────────┼────────────────────────────┤
       │ mongoc_collection_insert_oneMONGOC_ERROR_COMMANDMONGOC_ERROR_SERVER        │
       │ mongoc_collection_insert_bulk               │                            │                            │
       │ mongoc_collection_update_one                │                            │                            │
       │ mongoc_collection_update_many               │                            │                            │
       │ mongoc_collection_replace_one               │                            │                            │
       │ mongoc_collection_delete_one                │                            │                            │
       │ mongoc_collection_delete_many               │                            │                            │
       ├─────────────────────────────────────────────┼────────────────────────────┼────────────────────────────┤
       │ mongoc_bulk_operation_executeMONGOC_ERROR_COMMANDMONGOC_ERROR_SERVER        │
       ├─────────────────────────────────────────────┼────────────────────────────┼────────────────────────────┤
       │ Write-concern timeout                       │ MONGOC_ERROR_WRITE_CONCERNMONGOC_ERROR_WRITE_CONCERN │
       └─────────────────────────────────────────────┴────────────────────────────┴────────────────────────────┘

       The  Error  API Versions are defined with MONGOC_ERROR_API_VERSION_LEGACY and MONGOC_ERROR_API_VERSION_2.
       Set the version with mongoc_client_set_error_api or mongoc_client_pool_set_error_api.

       SEE ALSO:
          MongoDB Server Error Codes

AUTHOR

       MongoDB, Inc

COPYRIGHT

       2017-present, MongoDB, Inc

1.21.0                                            Feb 09, 2022                                  MONGOC_ERRORS(3)