Como você está usando o bash, você pode definir no script a opção:
set -o pipefail
The pipeline's return status is the value of the last (rightmost) command to exit with a non-zero status, or zero if all commands exit successfully.
Como alternativa, imediatamente após o comando canalizado, é possível ver o valor da variável incorporada ${PIPESTATUS[0]}
para o código de saída do primeiro comando no canal.
PIPESTATUS: An array variable containing a list of exit status values from the processes in the most-recently-executed foreground pipeline (which may contain only a single command).