Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
MONGOC_ERRORS(3)		    libmongoc			MONGOC_ERRORS(3)

A<< libmongoc - API

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.

+----------------------+----------------------------------+--------------------------------------------+
| Code		       | Description			  |					       |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ERROR_CLIENT  | MONGOC_ER-			  | You  tried to send a		       |
|		       | ROR_CLIENT_TOO_BIG		  | message larger  than		       |
|		       |				  | the   server's   max		       |
|		       |				  | message size.			       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ER-			  | Wrong   credentials,		       |
|		       | ROR_CLIENT_AUTHENTI-		  | or	failure  sending		       |
|		       | CATE				  | or receiving authen-		       |
|		       |				  | tication messages.			       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ER-			  | You  tried	an   TLS		       |
|		       | ROR_CLIENT_NO_AC-		  | connection	but  the		       |
|		       | CEPTABLE_PEER			  | driver was not built		       |
|		       |				  | with TLS.				       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ER-			  | You began  iterating		       |
|		       | ROR_CLIENT_IN_EX-		  | an	exhaust  cursor,		       |
|		       | HAUST				  | then tried to  begin		       |
|		       |				  | another    operation		       |
|		       |				  | with    the     same		       |
|		       |				  | mongoc_client_t.			       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ER-			  | Failure  related  to		       |
|		       | ROR_CLIENT_SES-		  | creating or using  a		       |
|		       | SION_FAILURE			  | logical session.			       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ER-			  | Failure  related  to		       |
|		       | ROR_CLIENT_IN- 		  | arguments	  passed		       |
|		       | VALID_ENCRYPTION_ARG		  | when    initializing		       |
|		       |				  | In-Use Encryption.			       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ER-			  | Failure  related  to		       |
|		       | ROR_CLIENT_IN- 		  | In-Use Encryption.			       |
|		       | VALID_ENCRYP-			  |					       |
|		       | TION_STATE			  |					       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ER-			  | You   attempted   to		       |
|		       | ROR_CLIENT_IN- 		  | connect to a MongoDB		       |
|		       | VALID_LOAD_BALANCER		  | server behind a load		       |
|		       |				  | balancer,  but   the		       |
|		       |				  | server  does not ad-		       |
|		       |				  | vertize  load   bal-		       |
|		       |				  | anced support.			       |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ERROR_STREAM  | MONGOC_ER-			  | DNS failure.			       |
|		       | ROR_STREAM_NAME_RES-		  |					       |
|		       | OLUTION			  |					       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ER-			  | Timeout  communicat-		       |
|		       | ROR_STREAM_SOCKET		  | ing with server,  or		       |
|		       |				  | connection closed.			       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ER-			  | Failed to connect to		       |
|		       | ROR_STREAM_CONNECT		  | server.				       |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ERROR_PROTO-  | MONGOC_ERROR_PROTO-		  | Corrupt	response		       |
| COL		       | COL_INVALID_REPLY		  | from server.			       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ERROR_PROTO-		  | The  server  version		       |
|		       | COL_BAD_WIRE_VERSION		  | is	too  old  or too		       |
|		       |				  | new  to  communicate		       |
|		       |				  | with the driver.			       |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ERROR_CURSOR  | MONGOC_ERROR_CUR-		  | You passed bad argu-		       |
|		       | SOR_INVALID_CURSOR		  | ments	      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_ER-			  | A  resume token was not returned in        |
|		       | ROR_CHANGE_STREAM_NO_RE-	  | a	  document	found	   with        |
|		       | SUME_TOKEN			  | mongoc_change_stream_next() 	       |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ERROR_QUERY   | MONGOC_ERROR_QUERY_FAIL-	  | Error  API	Version 1: Server error        |
|		       | URE				  | from command or query.  The  server        |
|		       |				  | error message is in message.	       |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ERROR_SERVER  | MONGOC_ERROR_QUERY_FAIL-	  | Error  API	Version 2: Server error        |
|		       | URE				  | 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_IN-		  | You passed an invalid or  oversized        |
|		       | VALID				  | BSON  document  as	a parameter, or        |
|		       |				  | called				       |
|		       |				  | mongoc_collection_create_index()	       |
|		       |				  | with invalid keys,	or  the  server        |
|		       |				  | reply was corrupt.			       |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ERROR_NAME-   | MONGOC_ERROR_NAME-		  | You  tried	to  create a collection        |
| SPACE 	       | SPACE_INVALID			  | with an invalid name.		       |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ERROR_COMMAND | MONGOC_ERROR_COMMAND_IN-	  | Many functions set this error  code        |
|		       | VALID_ARG			  | when  passed  bad parameters. Print        |
|		       |				  | the error message for details.	       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ERROR_PROTO-		  | You tried to use a	command  option        |
|		       | COL_BAD_WIRE_VERSION		  | the server does not support.	       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ERROR_DUPLI-		  | An	insert or update failed because        |
|		       | CATE_KEY			  | because of a duplicate _id or other        |
|		       |				  | unique-index violation.		       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ER-			  | The operation failed  because  max-        |
|		       | ROR_MAX_TIME_MS_EXPIRED	  | TimeMS expired.			       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ERROR_SERVER_SE-	  | The  serverId  option for an opera-        |
|		       | LECTION_INVALID_ID		  | tion  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_COLLEC- | MONGOC_ERROR_COLLEC-		  | Invalid   or   empty    input    to        |
| TION		       | TION_INSERT_FAILED, MON-	  | mongoc_collection_insert_one(),	       |
|		       | GOC_ERROR_COLLECTION_UP-	  | mongoc_collection_insert_bulk(),	       |
|		       | DATE_FAILED,  MONGOC_ER-	  | mongoc_collection_update_one(),	       |
|		       | ROR_COLLEC-			  | mongoc_collection_update_many(),	       |
|		       | TION_DELETE_FAILED.		  | mongoc_collection_replace_one(),	       |
|		       |				  | mongoc_collection_delete_one(),  or        |
|		       |				  | mongoc_collection_delete_many().	       |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ERROR_COLLEC- | Error code from server.	  | Error API Version 1:  Server  error        |
| TION		       |				  | 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_ER-			  | The GridFS file is missing a  docu-        |
|		       | ROR_GRIDFS_CHUNK_MISSING	  | ment in its chunks collection.	       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ERROR_GRIDFS_COR-	  | A  data  inconsistency was detected        |
|		       | RUPT				  | in GridFS.				       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ERROR_GRIDFS_IN-	  | You  passed  a  NULL  filename   to        |
|		       | VALID_FILENAME 		  | mongoc_gridfs_remove_by_filename().        |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ERROR_GRIDFS_PRO-	  | You 			 called        |
|		       | TOCOL_ERROR			  | mongoc_gridfs_file_set_id()   after        |
|		       |				  | mongoc_gridfs_file_save(), or tried        |
|		       |				  | to write on a closed GridFS stream.        |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ER-			  | A GridFS file is missing from files        |
|		       | ROR_GRIDFS_BUCKET_FILE_NOT_FOUND | collection. 			       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ER-			  | An	error occurred on a stream cre-        |
|		       | ROR_GRIDFS_BUCKET_STREAM	  | ated from a GridFS	operation  like        |
|		       |				  | mongoc_gridfs_bucket_upload_from_stream(). |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ERROR_SCRAM   | MONGOC_ERROR_SCRAM_PROTOCOL_ER-  | Failure  in  SCRAM-SHA-1  or SCRAM-SHA-256 |
|		       | ROR				  | authentication.			       |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ER-	       | MONGOC_ERROR_SERVER_SELEC-	  | No replica set member or mongos is	avail- |
| ROR_SERVER_SELECTION | TION_FAILURE			  | able,  or  none  matches your read prefer- |
|		       |				  | ence,   or	 you   supplied   an   invalid |
|		       |				  | mongoc_read_prefs_t.		       |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ER-	       | Error code from server.	  | There was a write concern error or timeout |
| ROR_WRITE_CONCERN    |				  | from the server.			       |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ERROR_TRANS-  | MONGOC_ERROR_TRANSACTION_INVALID | You  attempted to start a transaction when |
| ACTION	       |				  | one is already in progress, or  commit  or |
|		       |				  | abort when there is no transaction.        |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ER-	       | Error	code  produced by libmon- | An error occurred in the library responsi- |
| ROR_CLIENT_SIDE_EN-  | gocrypt.			  | ble for In-Use Encryption		       |
| CRYPTION	       |				  |					       |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ERROR_AZURE   | MONGOC_ERROR_KMS_SERVER_HTTP	  | An Azure HTTP service  responded  with  an |
|		       |				  | error status			       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ERROR_KMS_SERVER_BAD_JSON | An	Azure  service	responded with invalid |
|		       |				  | JSON data				       |
+----------------------+----------------------------------+--------------------------------------------+
| MONGOC_ERROR_GCP     | MONGOC_ERROR_KMS_SERVER_HTTP	  | A GCP HTTP service responded with an error |
|		       |				  | status				       |
+----------------------+----------------------------------+--------------------------------------------+
|		       | MONGOC_ERROR_KMS_SERVER_BAD_JSON | A GCP service responded with invalid  JSON |
|		       |				  | data				       |
+----------------------+----------------------------------+--------------------------------------------+

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 in-
     clude error labels to the reply, in the form of a BSON field named  "error-
     Labels" 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  demon-
     strates the use of error labels in application logic.

     The  following  error labels are currently defined. Future versions of Mon-
     goDB may introduce new labels.

   TransientTransactionError
     Within a multi-document transaction, certain errors can leave the	transac-
     tion 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  com-
     mitted.  Applications should attempt to commit the transaction again until:
     the commit succeeds, the commit fails with an error not  labeled  "Unknown-
     TransactionCommitResult", 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 do-
     main is MONGOC_ERROR_COLLECTION, MONGOC_ERROR_QUERY,  or  MONGOC_ERROR_COM-
     MAND,  the error code might originate from the server or the driver. An ap-
     plication cannot always know where an error originated, and therefore  can-
     not 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_UP-
     DATE_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,  MON-
     GOC_ERROR_SERVER.	In  Version 2, error codes originating on the server al-
     ways 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_error() 			| MONGOC_ERROR_QUERY   | MONGOC_ERROR_SERVER |
+-----------------------------------------------+----------------------+---------------------+
| mongoc_client_command_with_opts(),		| MONGOC_ERROR_QUERY   | MONGOC_ERROR_SERVER |
| mongoc_database_command_with_opts(),		|		       |		     |
| and	other	command 			|		       |		     |
| functions					|		       |		     |
+-----------------------------------------------+----------------------+---------------------+
| mongoc_collection_count_with_opts()		| MONGOC_ERROR_QUERY   | MONGOC_ERROR_SERVER |
| mongoc_client_get_database_names_with_opts(), |		       |		     |
| and other command helper functions		|		       |		     |
+-----------------------------------------------+----------------------+---------------------+
| mongoc_collection_insert_one()		| MONGOC_ERROR_COMMAND | MONGOC_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_execute()		| MONGOC_ERROR_COMMAND | MONGOC_ERROR_SERVER |
+-----------------------------------------------+----------------------+---------------------+
| Write-concern timeout 			| MONGOC_ER-	       | MONGOC_ER-	     |
|						| ROR_WRITE_CONCERN    | ROR_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
     2009-present, MongoDB, Inc.

1.30.8				  Aug 27, 2026			MONGOC_ERRORS(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mongoc_errors&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help