4fa13a1d28
POSIX sh exits a script on the assignment line when command substitution exits non-zero under set -e -- before the subsequent echo ever runs. DEPLOY_OUTPUT=$(cmd 2>&1) # <- script exits here if cmd fails EXIT_CODE=$? echo "$DEPLOY_OUTPUT" # <- never reached Fix: use the || idiom, which puts the LHS in a compound-command context where set -e does not apply, and still captures the real exit code: EXIT_CODE=0 DEPLOY_OUTPUT=$(cmd 2>&1) || EXIT_CODE=$? echo "$DEPLOY_OUTPUT" # <- always runs Applied the same fix to the resolve call.