From 4c3f5576b9e6628192ec84c8cf3dc28085ddec42 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 15 Jun 2026 22:52:49 +0000 Subject: [PATCH] fix: detect and retry Electron binary download when npm install silently fails npm install returns 0 even when Electron's postinstall binary download fails, leaving node_modules/electron/dist/electron missing and causing a blank screen with no useful error. After npm install, explicitly check for the binary. If absent, retry via ELECTRON_FORCE_DOWNLOAD=true node install.js. If still missing, print a clear error and exit 1 instead of silently continuing to a broken install. https://claude.ai/code/session_01EyjEQLWbTXcZgbMDarf7NU --- ubuntu-based-kiosk-v1.0.2.sh | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/ubuntu-based-kiosk-v1.0.2.sh b/ubuntu-based-kiosk-v1.0.2.sh index c87fba1..cb4ba38 100644 --- a/ubuntu-based-kiosk-v1.0.2.sh +++ b/ubuntu-based-kiosk-v1.0.2.sh @@ -7260,13 +7260,26 @@ PKGJSON echo "[17/27] Installing Electron packages..." echo "Note: npm may show deprecation warnings (safe to ignore)" sudo -u "$KIOSK_USER" bash -lc "cd '$KIOSK_DIR' && npm install --unsafe-perm" - + + # Verify electron binary downloaded (npm install succeeds even if the binary download fails) + local electron_bin="$KIOSK_DIR/node_modules/electron/dist/electron" + if [[ ! -f "$electron_bin" ]]; then + log_warning "Electron binary not found after npm install — retrying download..." + sudo -u "$KIOSK_USER" bash -lc "cd '$KIOSK_DIR' && ELECTRON_FORCE_DOWNLOAD=true node node_modules/electron/install.js" || true + fi + if [[ ! -f "$electron_bin" ]]; then + log_error "Electron binary download failed. Check network connectivity and retry:" + log_error " cd $KIOSK_DIR && sudo -u $KIOSK_USER ELECTRON_FORCE_DOWNLOAD=true npm install electron --unsafe-perm" + exit 1 + fi + log_success "Electron binary verified" + local sandbox="$KIOSK_DIR/node_modules/electron/dist/chrome-sandbox" if [[ -f "$sandbox" ]]; then sudo chown root:root "$sandbox" sudo chmod 4755 "$sandbox" fi - + sudo -u "$KIOSK_USER" tee "$KIOSK_DIR/start.sh" > /dev/null <<'LAUNCHER' #!/bin/bash cd /home/kiosk/kiosk-app