Cannot use non-local read concern until replica set is finished initializing

The error message “cannot use non-local read concern until replica set is finished initializing” occurs when attempting to perform a read operation with a non-local read concern on a MongoDB replica set before it has finished initializing.

Read concern is a MongoDB feature that allows specifying the level of isolation for read operations. Non-local read concern refers to read concern levels that involve reading data from different nodes in the replica set. However, these levels are not available until the replica set has completed its initialization process.

During initialization, MongoDB performs various tasks such as electing a primary node, syncing data, populating the oplog, etc. Until these processes are complete, the replica set is considered to be in the initialization stage.

To resolve this issue, you need to wait until the replica set finishes initializing before using non-local read concerns. You can check the initialization status by connecting to the primary node and running the following command in the MongoDB shell:

    use admin
    db.runCommand({replSetGetStatus: 1})
  

This command will provide information about the current state of the replica set, including the initialization progress. Once the status shows that the replica set is in the “PRIMARY” state and all nodes are “READY”, it means the initialization is complete.

Here’s an example of the expected output when the replica set has finished initializing:

    {
      "set": "myReplicaSet",
      "date": ISODate("2022-01-01T00:00:00Z"),
      "myState": 1,
      "members": [
        {
          "_id": 0,
          "state": 1,
          "name": "primaryNode:27017",
          "health": 1,
          ...
        },
        {
          "_id": 1,
          "state": 2,
          "name": "secondaryNode1:27017",
          "health": 1,
          ...
        },
        {
          "_id": 2,
          "state": 2,
          "name": "secondaryNode2:27017",
          "health": 1,
          ...
        }
      ],
      ...
    }
  

Once the replica set has finished initializing, you can proceed with using non-local read concerns in your read operations without encountering the mentioned error.

Read more

Leave a comment