# Autogenerated tests for SDAM error handling, see generate-error-tests.py
description: Stale topologyVersion NotPrimaryOrSecondary error
uri: mongodb://a/?replicaSet=rs
phases:
- description: Primary A is discovered
  responses:
  - - a:27017
    - ok: 1
      helloOk: true
      isWritablePrimary: true
      hosts:
      - a:27017
      setName: rs
      minWireVersion: 0
      maxWireVersion: 9
      topologyVersion: &topologyVersion_1_1
        processId:
          "$oid": '000000000000000000000001'
        counter:
          "$numberLong": '1'
  outcome: &outcome
    servers:
      a:27017:
        type: RSPrimary
        setName: rs
        topologyVersion: *topologyVersion_1_1
        pool:
          generation: 0
    topologyType: ReplicaSetWithPrimary
    logicalSessionTimeoutMinutes: null
    setName: rs

- description: Ignore stale NotPrimaryOrSecondary error (topologyVersion less)
  applicationErrors:
  - address: a:27017
    when: afterHandshakeCompletes
    maxWireVersion: 9
    type: command
    response:
      ok: 0
      errmsg: NotPrimaryOrSecondary
      code: 13436
      topologyVersion:
        processId:
          "$oid": '000000000000000000000001'
        counter:
          "$numberLong": '0'
  outcome: *outcome

- description: Ignore stale NotPrimaryOrSecondary error (topologyVersion equal)
  applicationErrors:
  - address: a:27017
    when: afterHandshakeCompletes
    maxWireVersion: 9
    type: command
    response:
      ok: 0
      errmsg: NotPrimaryOrSecondary
      code: 13436
      topologyVersion:
        processId:
          "$oid": '000000000000000000000001'
        counter:
          "$numberLong": '1'
  outcome: *outcome
