Search code examples
amazon-web-servicescassandraamazon-keyspaces

Consistency level LOCAL_ONE is not supported for this operation. Supported consistency levels are: LOCAL_QUORUM


I am working with AWS keyspaces and trying to insert data from C# but getting this error."Consistency level LOCAL_ONE is not supported for this operation. Supported consistency levels are: LOCAL_QUORUM". can anyone please help out here.

AWS keyspace

CREATE KEYSPACE IF NOT EXISTS "DevOps"
   WITH REPLICATION={'class': 'SingleRegionStrategy'} ;

Table

CREATE TABLE IF NOT EXISTS "DevOps"."projectdetails" (
"id" UUID PRIMARY KEY,
"name" text,
"lastupdatedtime" timestamp,
"baname" text,
"customerid" UUID)

C# code

 public async Task AddRecord(List<projectdetails> projectDetails)
        {

            try
            {
                if (projectDetails.Count > 0)
                {
                    foreach (var item in projectDetails)
                    {
                        projectdetails projectData = new projectdetails();
                        projectData.id = item.id;
                        projectData.name = item.name;
                        projectData.baname = "Vishal";
                        projectData.lastupdatedtime = item.lastupdatedtime;
                        projectData.customerid = 1;
                        await mapper.InsertAsync<projectdetails>(projectData);
                    }
                }
            }

            catch (Exception e) 
            { 

            }
        }

Solution

  • The error clearly says that you need to use correct consistency level LOCAL_QUORUM instead of the LOCAL_ONE that is used by default. AWS documentation says that for write operations, it's only the consistency level supported. You can set consistency level by using the version of InsertAsync that accepts the CqlQueryOptions, like this (maybe create instance of the query options only once, during initialization of the application):

    mapper.InsertAsync<projectdetails>(projectData, 
      new CqlQueryOptions().SetConsistencyLevel(ConsistencyLevel.LocalQuorum))