Two issues on IONOS shared hosting (very low ulimit -u):
1. bash 4.4+ propagates the exit code of command substitutions through
`local var=$(cmd)`. When yq crashes (exit 2) the assignment itself
returns 2, and set -e kills the script before any log message appears.
Fixed by adding `|| return 0` to the yq wrapper so it always exits 0.
2. All ref_count comparisons checked for "null"/"0" but not for empty
string. A yq call that produces no stdout (crashed but returned 0)
leaves ref_count="", which neither guard caught — the arithmetic loop
`i < ref_count` silently treated "" as 0 and skipped all references.
Fixed by adding `[[ -z "$ref_count" ]]` to every ref_count guard.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>