diff --git a/include/git.sh b/include/git.sh
index 49148224c34ebfe82bf267274e0057a1fe6908f5..811b298a85bd6320d391d9938e22ade89158b674 100755
--- a/include/git.sh
+++ b/include/git.sh
@@ -72,7 +72,7 @@ prepare_new_tree()
 		git submodule update --init --checkout || \
 		    err "prepare_new_tree ${project}/${tree}: !submodules"
 	fi
-	)
+	) || err "git submodule update failure"
 	git_am_patches "${tmp_git_dir}" "$PWD/$cfgsdir/$tree/patches" || \
 	    err "prepare_new_tree ${project}/${tree}: patch fail"
 	[ "${patchfail}" = "y" ] && err "PATCH FAIL"
@@ -138,7 +138,7 @@ git_reset_rev()
 		git submodule update --init --checkout || \
 		    err "git_reset_rev ${1}: can't download submodules"
 	fi
-	)
+	) || err "git reset fail"
 }
 
 git_am_patches()
diff --git a/include/mrc.sh b/include/mrc.sh
index e57026a4ee2564b64baadf2709630c82b63888e7..929aed7aaba89283a190e00ab8eba79aac345654 100755
--- a/include/mrc.sh
+++ b/include/mrc.sh
@@ -20,7 +20,7 @@ extract_mrc()
 	extract_partition
 	extract_shellball
 	extract_coreboot
-	)
+	) || err "mrc download/extract failure"
 
 	"${cbfstool}" "${appdir}/"coreboot-*.bin extract -n mrc.bin \
 	    -f "${_dest}" -r RO_SECTION || err "extract_mrc: cbfstool ${_dest}"
diff --git a/script/build/grub b/script/build/grub
index 31fc0084ad80c220ad9586ead1d4f4855eedfbfd..5fa47c00525f237ceaf9b31215bb6414eb71f3bd 100755
--- a/script/build/grub
+++ b/script/build/grub
@@ -38,7 +38,7 @@ build_grub_utils()
 	x_ ./autogen.sh
 	x_ ./configure --with-platform=coreboot
 	make -j$(nproc) FS_PAYLOAD_MODULES="" || err "!mk grub utils"
-	)
+	) || err "grub build error"
 }
 
 build_keymap_configs()
diff --git a/script/update/release b/script/update/release
index dcddb44c9fb9644d4f01fb9c548b102e7d81913e..447d93ce446ef59bed361721f95bdbc5f7235c6e 100755
--- a/script/update/release
+++ b/script/update/release
@@ -50,11 +50,11 @@ build_release()
 	cd "${srcdir}" || err "${_xm}: !cd \"${srcdir}\""
 	fetch_trees
 	x_ mv src/docs docs
-	)
+	) || err "can't copy docs"
 	(
 	cd "${srcdir%/*}" || err "${_xm}: mktarball \"${srcdir}\""
 	mktarball "${srcdir##*/}" "${srcdir##*/}.tar.xz" || err "${_xm}: mksrc"
-	)
+	) || err "can't create pre-crossgcc src tarball"
 	[ "${mode}" = "src" ] && return 0 # for src mode, xgcc tarballs are
 					  # not included in the src archive
 
@@ -64,7 +64,7 @@ build_release()
 	(
 	cd "${srcdir}" || err "${_xm}: 2 !cd \"${srcdir}\""
 	mkrom_images
-	)
+	) || err "can't build rom images"
 	for _cbd in "${srcdir}/src/coreboot/"*; do
 		[ -d "${_cbd}/util/crossgcc/tarballs" ] || continue
 		_xgccdir="${vdir}/crossgcc/${_cbd##*/}"
@@ -78,7 +78,7 @@ build_release()
 	cd "${srcdir%/*}" || err "${_xm} 2: mktarball \"${srcdir}\""
 	tar -xf "${srcdir##*/}.tar.xz" || err "!extract ${srcdir##*/}.tar.xz"
 	rm -f "${srcdir##*/}.tar.xz" || err "!rm -f ${srcdir##*/}.tar.xz"
-	)
+	) || err "can't extract pre-crossgcc src tarball"
 	for _xgcc in "${vdir}/crossgcc/"*; do
 		[ -d "${_xgcc}" ] || continue
 		mkdir -p "${srcdir}/src/coreboot/${_xgcc##*/}/util/crossgcc/tarballs" || \
@@ -91,7 +91,7 @@ build_release()
 	(
 	cd "${srcdir%/*}" || err "${_xm}: mktarball \"${srcdir}\""
 	mktarball "${srcdir##*/}" "${srcdir##*/}.tar.xz" || err "${_xm}: mksrc"
-	)
+	) || err "can't create src tarball with crossgcc"
 
 	# now test the vendor insert script, using the release archive:
 	(
@@ -106,7 +106,7 @@ build_release()
 		    err "TESTFAIL: inject: ${vrom##*/}"
 		continue
 	done
-	)
+	) || err "vendorfile inject test failure"
 
 	rm -Rf "${srcdir}" || err "!rm -Rf ${srcdir}"
 }
@@ -210,7 +210,7 @@ nukerom()
 	(
 	cd "${romdir}" || err "!cd romdir ${romdir}, nukerom"
 	sha512sum *.rom >> vendorhashes || err "!create vendorhashes, nukerom"
-	)
+	) || err "can't create vendor hashes"
 
 	for romfile in "${romdir}"/*.rom; do
 		[ -f "${romfile}" ] || continue
@@ -257,7 +257,7 @@ mkrom_tarball()
 	(
 	cd "${romdir%/bin/${target}}" || err "!cd ${romdir%/bin/${target}}"
 	mktarball "bin/${target}" "${archivename}.tar.xz"
-	)
+	) || err "can't create rom tarball"
 	mv "${romdir%/bin/${target}}/${archivename}.tar.xz"* "${f%/*}" || \
 	    err "!mktarball, rom, ${f%/*}/${romdir%/bin/${target}}/${archivename}.tar.xz"
 
@@ -289,7 +289,7 @@ mktarball()
 	[ "${2%/*}" != "${2}" ] && x_ cd "${2%/*}"
 	sha512sum "${2##*/}" > "${2##*/}.sha512" || \
 	    err "!sha512sum \"${2##*/}\" > \"${2##*/}.sha512\""
-	)
+	) || err "failed to create tarball checksum"
 }
 
 main $@
diff --git a/script/update/trees b/script/update/trees
index bd0fcb61484586bd4ab788fc566c1ca0c1a7e241..1719aab925d5107748c7909b2904222ed828af2c 100755
--- a/script/update/trees
+++ b/script/update/trees
@@ -61,7 +61,7 @@ build_projects()
 		x_ cd src/uefitool
 		cmake UEFIExtract/ || [ -f Makefile ] || \
 		    err "build_projects: !cmake UEFIExtract/"
-	)
+	) || err "can't build cmake on uefiextract"
 	fi
 
 	[ "${mode}" = "distclean" ] && mode="clean"
diff --git a/script/vendor/download b/script/vendor/download
index 4613c2b639b460a7766f7f3bd6633c369323a4d2..eada2e9170d580d36e1e123854bcda525442069e 100755
--- a/script/vendor/download
+++ b/script/vendor/download
@@ -214,7 +214,7 @@ extract_kbc1126ec()
 	[ -f ec.bin ] || err "extract_kbc1126_ec ${board}: can't extract"
 	"${kbc1126_ec_dump}" ec.bin || \
 	    err "extract_kbc1126_ec ${board}: can't extract ecfw1/2.bin"
-	)
+	) || err "can't extract kbc1126 ec firmware"
 	ec_ex="y"
 	for i in 1 2; do
 		[ -f "${appdir}/ec.bin.fw${i}" ] || ec_ex="n"
@@ -239,7 +239,7 @@ extract_e6400vga()
 	"${e6400_unpack}" bios.bin || printf "TODO: fix dell extract util\n"
 	[ -f "${E6400_VGA_romname}" ] || \
 		err "extract_e6400vga: can't extract vga rom from bios.bin"
-	)
+	) || err "can't extract e6400 vga rom"
 	cp "${appdir}/${E6400_VGA_romname}" "${_dest}" || \
 	    err "extract_e6400vga ${board}: can't copy vga rom to ${_dest}"
 }
diff --git a/script/vendor/inject b/script/vendor/inject
index 088851ca58642b458c7d7329dc024d2744c5f1c8..2e125f4f90ab30d8723e73d4bbb9a58c0c917313 100755
--- a/script/vendor/inject
+++ b/script/vendor/inject
@@ -141,7 +141,7 @@ patch_release_roms()
 	    sha512sum --status -c blobhashes || \
 	    sha1sum --status -c blobhashes || \
 	    err "patch_release_roms: ROMs did not match expected hashes"
-	)
+	) || err "can't verify vendor hashes"
 
 	if [ "${modifygbe}" = "true" ]; then
 		for x in "${_tmpdir}"/bin/*/*.rom ; do