From 1010d9642629f18bb3d0255de875ea8c2bad821e Mon Sep 17 00:00:00 2001 From: Krzysztof kuhy Rudnicki Date: Wed, 11 Nov 2026 15:57:08 +0100 Subject: [PATCH] deploy.sh: wait out phone_deploy load guard Co-Authored-By: Claude Opus 5.5 --- pubspec.yaml | 2 +- scripts/deploy.sh | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index 9cec33d..14828dd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.0.81+1 +version: 1.0.82+1 environment: sdk: ^3.12.2 diff --git a/scripts/deploy.sh b/scripts/deploy.sh index f098cbd..4647272 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -149,8 +149,16 @@ deploy_phone() { # Outside a Claude session each phone_lease call would name its own # pid as owner, so phone_deploy's launch step blocked on the lease its # own install step took (exit 35). One owner for the whole run. - PHONE_LEASE_OWNER="${PHONE_LEASE_OWNER:-deploy:$$}" ADB_SERIAL="$SERIAL" \ - heavy "$PHONE_DEPLOY" "$ROOT" --release || rc=$? + # Exit 48 = load too high right now; wait it out (up to 15 min). + local tries=0 + while :; do + rc=0 + PHONE_LEASE_OWNER="${PHONE_LEASE_OWNER:-deploy:$$}" ADB_SERIAL="$SERIAL" \ + heavy "$PHONE_DEPLOY" "$ROOT" --release || rc=$? + ((rc == 48 && ++tries <= 30)) || break + say phone "machine busy, retrying in 30 s ($tries/30)" + sleep 30 + done ((rc == 0)) || { fail phone "phone_deploy.sh exited $rc (see its exit-code table)"; return; } fi phone_health "$want"