Exit codes in GATK 4.0
In my BASH scripts I often use "$?" to monitor the exit status of a process and normally stop if there is an error. However, I am using the latest version of GATK (18.104.22.168) and some tools return 0 exit status even if they fail. Instead, they display the following message to STDOUT:
Tool returned: 1
Though inconvenient for error handling in BASH scripts, this might be an intended behaviour, but not all tools exhibit it. To mention a few, MarkDuplicates, CollectMultipleMetrics, CollectGcBiasMetrics always have a 0 exit status, whereas VariantsToTable or CountVariants do return 1 if they encounter an error.
A similar issue had been reported in the past for previous versions of GATK (https://gatkforums.broadinstitute.org/gatk/discussion/8618/error-handling-end-exit-codes-in-gatk).