diff --git a/backup-node.sh b/backup-node.sh index 4a4ac19c..db043eaf 100755 --- a/backup-node.sh +++ b/backup-node.sh @@ -157,8 +157,15 @@ for key in $keys; do folder_size_gb=$(printf "%.0f" "$folder_size") if (( folder_size_gb < 1 )) && [[ "$FORCE_SMALL" != true ]]; then - echo "FATAL: existing datadir too small for backup (${folder_size_gb}G at $source_folder); use --force if intentional" >&2 - exit 1 + # The torn-backup floor applies to the MAIN data volume only (key == compose + # basename). Sidecar volumes (eigenda-proxy, configs, ...) are legitimately + # tiny — a 0G sidecar aborting the whole backup left no manifest and blocked + # the refresh lane on every ronin bench-retire (4 cycles, 2026-07). + if [[ "$key" == "$(basename "$compose_name")" ]]; then + echo "FATAL: existing datadir too small for backup (${folder_size_gb}G at $source_folder); use --force if intentional" >&2 + exit 1 + fi + echo "NOTE: sidecar volume rpc_$key is ${folder_size_gb}G — allowing small backup (floor guards the main data volume only)" fi timestamp=$(date +'%Y-%m-%d-%H-%M-%S')