This error is thrown by Salesforce itself when attempting to Upsert an input table that does not always contain a value for the External ID field(in this case External_ID__c as shown in the example below). When performing Upsert with SF_TableLoader, it is necessary for the External ID field to contain a valid value. In this case, it should not be empty. If any of the records contains an empty value, the BULK API cannot decide whether that specific record needs to be updated or inserted. The external ID needs to be specified, as the error itself states.
API reference on how the upsert operation works: (https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/bulk_api_2_0_upsert.htm?_ga=2.136492534.793560252.1693256725-1249321776.1673529617)
Example query executed that reproduces the issue:
EXEC SF_TableLoader 'Upsert:BULKAPI, Parallel, Batchsize(500)',
Account_Upsert input table example:
Please reach out to email@example.com if you have any questions.