Provided by: libmongoc-doc_1.9.2+dfsg-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.

┌──────────────────────────────┬────────────────────────────────────────────┬───────────────────────────────────┐
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│MONGOC_ERROR_CLIENTMONGOC_ERROR_CLIENT_TOO_BIG                │ You   tried  to  send  a          │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│                              │ MONGOC_ERROR_CLIENT_AUTHENTICATE           │ Wrong   credentials,  or          │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│                              │ MONGOC_ERROR_CLIENT_NO_ACCEPTABLE_PEER     │ You    tried    an   SSL          │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│                              │ MONGOC_ERROR_CLIENT_IN_EXHAUST             │ You began  iterating  an          │
│                              │                                            │ mongoc_client_t.                  │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│                              │ MONGOC_ERROR_CLIENT_SESSION_FAILURE        │ Failure    related    to          │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│MONGOC_ERROR_STREAMMONGOC_ERROR_STREAM_NAME_RESOLUTION        │ DNS failure.                      │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│                              │ MONGOC_ERROR_STREAM_SOCKET                 │ Timeout    communicating          │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│                              │ MONGOC_ERROR_STREAM_CONNECT                │ Failed  to  connect   to          │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│MONGOC_ERROR_PROTOCOLMONGOC_ERROR_PROTOCOL_INVALID_REPLY        │ Corrupt   response  from          │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│                              │ MONGOC_ERROR_PROTOCOL_BAD_WIRE_VERSION     │ The  server  version  is          │
└──────────────────────────────┴────────────────────────────────────────────┴───────────────────────────────────┘

│MONGOC_ERROR_CURSORMONGOC_ERROR_CURSOR_INVALID_CURSOR         │ You passed bad arguments          │
│                              │                                            │ mongoc_collection_find_with_opts, │
│                              │                                            │ mongoc_cursor_next  on a          │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│                              │ MONGOC_ERROR_CHANGE_STREAM_NO_RESUME_TOKEN │ A  resume  token was not returned │
│                              │                                            │ mongoc_change_stream_next         │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│MONGOC_ERROR_QUERYMONGOC_ERROR_QUERY_FAILUREError API Version 1: Server error │
│                              │                                            │ error message is in message.      │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│MONGOC_ERROR_SERVERMONGOC_ERROR_QUERY_FAILUREError API Version 2: Server error │
│                              │                                            │ error message is in message.      │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│MONGOC_ERROR_SASL             │ A SASL error code.                         │ man  sasl_errors  for  a  list of │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│MONGOC_ERROR_BSONMONGOC_ERROR_BSON_INVALID                  │ You   passed   an   invalid    or │
│                              │                                            │ mongoc_collection_create_index    │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│MONGOC_ERROR_NAMESPACEMONGOC_ERROR_NAMESPACE_INVALID             │ You  tried to create a collection │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│MONGOC_ERROR_COMMANDMONGOC_ERROR_COMMAND_INVALID_ARG           │ Many  functions  set  this  error │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│                              │ MONGOC_ERROR_PROTOCOL_BAD_WIRE_VERSION     │ You tried to use a command option │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│                              │ MONGOC_ERROR_DUPLICATE_KEY                 │ An  insert   or   update   failed │
│                              │                                            │ _id   or    other    unique-index │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│MONGOC_ERROR_COMMANDError code from server.                    │ Error API Version 1: Server error │
│                              │                                            │ message is in message.            │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│MONGOC_ERROR_SERVERError code from server.                    │ Error API Version 2: Server error │
│                              │                                            │ message is in message.            │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│MONGOC_ERROR_COLLECTIONMONGOC_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_COLLECTIONError code from server.                    │ Error API Version 1: Server error │
│                              │                                            │ mongoc_collection_insert_one,     │
│                              │                                            │ 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_SERVERError code from server.                    │ Error API Version 2: Server error │
│                              │                                            │ mongoc_collection_insert_one,     │
│                              │                                            │ 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_GRIDFSMONGOC_ERROR_GRIDFS_CHUNK_MISSING          │ The  GridFS  file  is  missing  a │
│                              │                                            │ document     in     its    chunks │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│                              │ 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.          │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│MONGOC_ERROR_SCRAMMONGOC_ERROR_SCRAM_PROTOCOL_ERROR          │ Failure       in      SCRAM-SHA-1 │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│MONGOC_ERROR_SERVER_SELECTIONMONGOC_ERROR_SERVER_SELECTION_FAILURE      │ No  replica  set member or mongos │
│                              │                                            │ mongoc_read_prefs_t.              │
├──────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────┤
│MONGOC_ERROR_WRITE_CONCERNError code from server.                    │ There  was  a write concern error │
└──────────────────────────────┴────────────────────────────────────────────┴───────────────────────────────────┘

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

       2018, MongoDB, Inc