Gatling runs two sessions in parallel in a simulation for the same user from feeder (queue).

Problem statement:
I’m trying to run multiple simulations in parallel by injecting them in a single simulation and triggering this simulation from command-line. It has been observed that Gatling tries to run a given simulation twice for the same user which is not intended. It is intended that Gatling should run different concurrent threads with different users and not the same users from a given queue feeder. I could point of this issue because the print Logging in with userId 1 was logged twice in console logs.

This issue is intermittent, not replicated in every test run.

Code (imports removed):

// AllSimulations.scala

class AllSimulations extends Simulation {

    new Simlation1().myScenario.inject(rampUsers(3) during (10))
    .protocols(new Simulation1().httpProtocol),

    new Simlation2().myScenario.inject(rampUsers(3) during (10))
    .protocols(new Simulation2().httpProtocol)


// Simulation1.scala

class Simulation1 extends Simulation {

  val httpProtocol = http
    .baseUrl("" + "/external")
    .acceptHeader("application/json, text/plain, */*")
    .acceptEncodingHeader("gzip, deflate, br")
    .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36")

  object Simulation1 {

    var credentialsForToken = ""
    var cId = ""
    var cPass = ""

    val feeder = csv("users.csv").queue

    val random =
        http("Step 1 : random")
        .exec { session =>
          cId = session("customerId").as[String]
          println("Logging in with userId " + cId)
          cPass = session("customerPassword").as[String]
          credentialsForToken = CredentialManagment.GenerateCreds.generateCredentialsFeeder(s"""{"customerId":"""" + cId + """","password":"""" + cPass + """","timeStamp":""" + session("Random").as[String] + """}""")
          session.set("credentials", credentialsForToken)
          http("Step 2 : login")
            .header("Content-Type", "application/json")

val myScenario = scenario("myScenario").exec(Scenario1.random)

      rampUsers(3) during (10)

Am I missing something or doing something wrong?