Seems clumbsy but this might work.
Run the import with SKIP and at the final step of the import there is an option to either add the contacts to a New Group (A) for the same.
This should give you a group of those who did not exist in db before import
Then re-run the import without SKIP and create new group (B) so that should give you all the list.
then use ...
add a custom field purely to track the import by adding a 1,2,3 etc column in your import
sometimes screens can time out but the import runs regardless, so having the above helps confirm if it really has stopped or not
hunt down some tickets about tweaking server so it runs for longer
Look at MySQL and find the temporary table. It will be names something like "civicrm_tmp_d_dflt_..."
Search status=NEW and that will tell you the number of rows left to import. Once the table has no NEW rows to import it is done and the table will be removed. If it did not succeed the table will still exist. I find this the best way to monitor the ...
I suggest you create an issue at https://lab.civicrm.org/dev/core/-/issues
I'd think it should be treated in the same way as if you matched on a contact id that was soft-deleted.
The message you quote appears to be generated from CRM_Contribute_Import_Parser_Contribution::deprecatedFormatParams() but given the name, a quick fix to that function to handle ...
For those who want to do this via the UI I believe this is as simple as going to civicrm/admin/financial/financialType?reset=1 and mousing over or clicking on Edit for each Financial Type and the ID will show in the url
For anyone else looking for this, you can use the getFields action on the Contribution entity to locate the options for the Financial Type ID.
$fields = \Civi\Api4\Contribution::getFields()
->addWhere('options', '!=', FALSE)