Couchbase client fail to connect server

I try to run application locally connect to the Couchbase in the datacenter via ssh tunneling.

here is my tunnel config

ssh config

Host cma.couchbase.prod
  User svccma
  IdentityFile ~/.ssh/some.key
  IdentitiesOnly yes
  StrictHostKeyChecking no
  Hostname some-machine.abc.org
  LocalForward 8091 172.30.123.47:8091
  LocalForward 8092 172.30.123.47:8092
  LocalForward 8093 172.30.123.47:8093
  LocalForward 8094 172.30.123.47:8094
  LocalForward 8095 172.30.123.47:8095
  LocalForward 8096 172.30.123.47:8096
  LocalForward 8097 172.30.123.47:8097
  LocalForward 9140 172.30.123.47:9140
  LocalForward 11210 172.30.123.47:11210
  ProxyCommand ssh ssm-bastion -W %h:%p

after tunnel this I can access Couchbase console via 127.0.0.1:8091 or call a query restful service successful via 127.0.0.1:8093 However, for some reason I cannot connect Couchbase with NodeJS SDK

Error

Query failed:  [Error: LCB_ERR_NETWORK (1048): Generic network failure] {
  code: 1048,
  ctxtype: 'query',
  first_error_code: 0,
  first_error_message: '',
  statement: '\n' +
    '        SELECT orderRef, countryCode, storeNumber, status\n' +
    '        FROM `Checkout` \n' +
    '        WHERE `_class` = "com.abc.checkout.entity.CheckoutEntity" \n' +
  parameters: '',
  http_response_code: 0,
  http_response_body: ''
}

COUCHBASE_HOST = 127.0.0.1

async function main() {
    console.log('Connecting to...' + process.env.COUCHBASE_HOST)
    const cluster = await couchbase.connect('couchbase://' + process.env.COUCHBASE_HOST, {
        username: process.env.COUCHBASE_USERNAME,
        password: process.env.COUCHBASE_PASSWORD,
    })

    // get a reference to our bucket
    const bucket = cluster.bucket(process.env.COUCHBASE_BUCKET_NAME);
    const collection_default = bucket.defaultCollection();
    console.log('Fetching data...' + process.env.COUCHBASE_HOST)
    const query = `
        SELECT orderRef, countryCode, storeNumber, status
        FROM \`Checkout\` 
        WHERE \`_class\` = "com.abc.checkout.entity.CheckoutEntity" 
        AND \`status\` NOT IN  ['SUCCESS', 'CANCELLED']
        AND DATE_DIFF_STR(NOW_LOCAL(), MILLIS_TO_LOCAL(lastModifiedDate), 'minute') > $1
        AND DATE_DIFF_STR(NOW_LOCAL(), MILLIS_TO_LOCAL(lastModifiedDate), 'hour') < $2
    `;
    const options = { parameters: [5, 48] }

    try {
        let result = await cluster.query(query, options)
        if (result.rows.length > 0) {

          // do something next.......

        }
        else {
            console.log('There are no in-processing checkouts....');
        }

    } catch (error) {
        console.error('Query failed: ', error)
    }

}

There are 8 nodes in total (2 query node)

  • 172.30.123.47 (Query)
  • 172.30.123.48 (Query)

Any idea???