@aibd suggested that the error could be a regional variant mismatch and he was right: download mode screen in Korean should have been a hint - mine is a SM-G965N from South Korea. Regional hardware variants… Damn. I suppose I’m a poster child for Android cluelessness and that my experience is therefore relevant for documentation improvement !
Anyway…
unzip G965NKSU5FVA2_G965NOKR5FVA2_SKC.zip && for f in *.tar.md5; do tar xf $f; done && lz4 -dm *.lz4
heimdall print-pit --no-reboot > S9.pit
heimdall flash `ls -1 | sort | while read i; do grep -B 1 $i S9.pit; done | sed s/Partition\ Name:\ /--/g | sed s/Flash\ Filename:\ // | tr '\n' ' ' | sed s/--\ //`
# Actually the command produces a duplicate "--UP_PARAM up_param.bin" I pruned by hand - exercise for the reader
The good news is that heimdall flash reported all successful. Reboot, an Android appears with a progress bar and…
The bad news is that the device is now in a boot loop - wiping cache partition from recovery didn’t help, nor did “wipe data/factory reset”, but at least I get the stock recovery rather than TWRP. On to clear the next hurdle on my path to get stock Samsung Android 10 so that I can install the latest /e/ to check if it solves my “SIM not detected SM-G960F after OTA Upgrade” problem…
Tried all the Korean G965N flavors too…
G965NKSU5FVA2_G965NOKR5FVA2_SKC.zip
G965NKSU5FVA2_G965NOKR5FVA2_KOO.zip
G965NKSU5FVA2_G965NOKR5FVA2_LUC.zip
G965NKSU5FVA2_G965NOKR5FVA2_KTC.zip