Why when I used "master:false", no records were fetched, but when I removed that feature, it fetched records as expected?

You probably have ALL objects in you configuration set to *master:false. *

Let see the example of three related objects:

{
 "objects": [
 {
      "query": "SELECT all FROM Contact",
      "operation": "Upsert",
      "externalId": "Name",
      "master": false
 },
 {
      "query": "SELECT all FROM Account",
      "operation": "Upsert",
      "externalId": "Name",
      "master": false
 },
 {
      "query": "SELECT all FROM AccountContactRelation",
      "operation": "Upsert",
      "externalId": "AccountId;ContactId",
      "master": false
 }
 ]
}

In this case the Plugin will try to resolve the related records between the objects and probably nothing will be fetched.

The resolution.

Put the Account object to master:true (it's a default value, simple remove this property).
Leave the configuration for the AccountContactRelation and Contact as master:false so they will remain like a "slave" objects and their records will be fetched automatically in relation to the fetched Account records:

{
 "objects": [
 {
 "query": "SELECT all FROM Contact",
 "operation": "Upsert",
 "externalId": "Name",
 "master": false
 },
 {
 "query": "SELECT all FROM Account",
 "operation": "Upsert",
 "externalId": "Name"
 },
 {
 "query": "SELECT all FROM AccountContactRelation",
 "operation": "Upsert",
 "externalId": "AccountId;ContactId",
 "master": false
 }
 ]
}
Last updated on Tu May 2022