Skip to content

[BUG]ljt can hang the installation when called from Jamf #579

@RIMorton

Description

@RIMorton

Describe the bug
I can run erase-install from the local machine with the same command switches, and it behaves different than when I run it through Jamf.
Run command or policy
Script prompts for name and password
I enter name and password
Run locally, it tells me I need to plug in (this was intentional so I could easily cancel).
Run from Jamf, it just hangs.

I was able to track it down to this line that hangs...
account_shortname=$(ljt '/Username' < "$dialog_output")

Then I investigated the ljt function. This is the answer I got back from ChatGPT on the difference. The suggested change does in dead work for me.

Safe Replacement
Replace:

read -r -d '' JSCode <<-'EOT'
...
EOTwith:

JSCode=$(cat <<'EOT'
...
EOT
)This does the same thing.
But it does not rely on read -d ''.
It works in:

zsh
bash
sh
Jamf
non-interactive shells
Much safer.

Why This Fix Works
cat <<EOF reads until EOF normally.
It does not rely on a NUL delimiter.
It does not require special read semantics.
It behaves consistently in non-interactive shells.

Why ljt Uses read -d ''
It’s a common trick used in:

StackOverflow snippets
Bash utilities
macOS admin scripts
But it assumes:

A normal interactive shell
Consistent read implementation
Jamf breaks that assumption.

This command also worked for me.
account_shortname=$(plutil -extract Username raw -o - "$dialog_output")

To Reproduce
You have to run from Jamf, but I am not sure what made my machine special. I have another engineer testing it on his machine, but he was rebuilding it down to 15 yesterday.

Expected behavior
It should just proceed

Code/log output
Command used from Jamf
/Library/Management/erase-install/erase-install.sh --reinstall --version=26.3 --check-power --min-drive-space=50 --current-user --cleanup-after-use

+log_rotate:31> writelog '[log_rotate] Finished rotating logs in /Library/Management/erase-install/log'
+writelog:1> DATE=+writelog:1> date '+%Y-%m-%d %H:%M:%S'
+writelog:1> DATE='2026-02-12 14:48:57' 
+writelog:2> echo '2026-02-12 14:48:57 | v40.4 | [log_rotate] Finished rotating logs in /Library/Management/erase-install/log'
2026-02-12 14:48:57 | v40.4 | [log_rotate] Finished rotating logs in /Library/Management/erase-install/log
+/Library/Management/erase-install/erase-install.sh:3986> echo

+/Library/Management/erase-install/erase-install.sh:3987> date
+/Library/Management/erase-install/erase-install.sh:3987> writelog '[erase-install] v40.4 script execution started: Thu Feb 12 14:48:57 EST 2026'
+writelog:1> DATE=+writelog:1> date '+%Y-%m-%d %H:%M:%S'
+writelog:1> DATE='2026-02-12 14:48:57' 
+writelog:2> echo '2026-02-12 14:48:57 | v40.4 | [erase-install] v40.4 script execution started: Thu Feb 12 14:48:57 EST 2026'
2026-02-12 14:48:57 | v40.4 | [erase-install] v40.4 script execution started: Thu Feb 12 14:48:57 EST 2026
+/Library/Management/erase-install/erase-install.sh:3988> echo

+/Library/Management/erase-install/erase-install.sh:3989> [[ -n '' ]]
+/Library/Management/erase-install/erase-install.sh:3993> writelog '[erase-install] Arguments provided: --reinstall --version=26.3 --check-power --min-drive-space=50 --current-user --cleanup-after-use'
+writelog:1> DATE=+writelog:1> date '+%Y-%m-%d %H:%M:%S'
+writelog:1> DATE='2026-02-12 14:48:57' 
+writelog:2> echo '2026-02-12 14:48:57 | v40.4 | [erase-install] Arguments provided: --reinstall --version=26.3 --check-power --min-drive-space=50 --current-user --cleanup-after-use'
2026-02-12 14:48:57 | v40.4 | [erase-install] Arguments provided: --reinstall --version=26.3 --check-power --min-drive-space=50 --current-user --cleanup-after-use
+/Library/Management/erase-install/erase-install.sh:3997> [[ no == yes || yes == yes ]]
+/Library/Management/erase-install/erase-install.sh:3998> [[ '' == yes ]]
+/Library/Management/erase-install/erase-install.sh:4010> set_localisations
+set_localisations:2> current_user=+set_localisations:2> current_user=+set_localisations:2> /usr/sbin/scutil
+set_localisations:2> /usr/bin/awk '-F: ' '/[[:space:]]+Name[[:space:]]:/ { if ( $2 != "loginwindow" ) { print $2 }}'
+set_localisations:2> current_user=rimorton 
+set_localisations:3> current_uid=+set_localisations:3> /usr/bin/id -u rimorton
+set_localisations:3> current_uid=502 
+set_localisations:8> current_user_homedir=+set_localisations:8> /usr/bin/dscl -plist /Search -read /Users/rimorton NFSHomeDirectory
+set_localisations:8> /usr/libexec/PlistBuddy -c 'Print :dsAttrTypeStandard\:NFSHomeDirectory:0' /dev/stdin
+set_localisations:8> current_user_homedir=/Users/rimorton 
+set_localisations:10> language=+set_localisations:10> /usr/libexec/PlistBuddy -c 'print AppleLanguages:0' //Users/rimorton/Library/Preferences/.GlobalPreferences.plist
+set_localisations:10> language=en-US 
+set_localisations:12> accent_colour=+set_localisations:12> /usr/bin/sudo -u rimorton /usr/bin/defaults read -g AppleAccentColor
+set_localisations:12> accent_colour='' 
+set_localisations:13> [ 1 -ne 0 ']'
+set_localisations:15> accent_colour=4 
+set_localisations:18> [[ -n '' ]]
+set_localisations:22> writelog '[set_localisations] Set language to en-US'
+writelog:1> DATE=+writelog:1> date '+%Y-%m-%d %H:%M:%S'
+writelog:1> DATE='2026-02-12 14:48:57' 
+writelog:2> echo '2026-02-12 14:48:57 | v40.4 | [set_localisations] Set language to en-US'
2026-02-12 14:48:57 | v40.4 | [set_localisations] Set language to en-US
+set_localisations:25> [[ en-US = de* ]]
+set_localisations:27> [[ en-US = nl* ]]
+set_localisations:29> [[ en-US = fr* ]]
+set_localisations:31> [[ en-US = es* ]]
+set_localisations:33> [[ en-US = pt* ]]
+set_localisations:35> [[ en-US = ja* ]]
+set_localisations:37> [[ en-US = ua* ]]
+set_localisations:40> user_language=en 
+set_localisations:44> dialog_dl_title_en='Downloading macOS' 
+set_localisations:45> dialog_dl_title_de='macOS wird heruntergeladen' 
+set_localisations:46> dialog_dl_title_nl='macOS downloaden' 
+set_localisations:47> dialog_dl_title_fr='Téléchargement de macOS' 
+set_localisations:48> dialog_dl_title_es='Descargando macOS' 
+set_localisations:49> dialog_dl_title_pt='Baixando o macOS' 
+set_localisations:50> dialog_dl_title_ja='macOS のダウンロード' 
+set_localisations:51> dialog_dl_title_ua='Завантаження macOS' 
+set_localisations:52> dialog_dl_title=dialog_dl_title_en 
+set_localisations:55> dialog_dl_desc_en='We need to download the macOS installer to your computer.  \n\nThis may take several minutes, depending on your internet connection.' 
+set_localisations:56> dialog_dl_desc_de='Das macOS-Installationsprogramm wird heruntergeladen.  \n\nDies kann einige Minuten dauern, je nach Ihrer Internetverbindung.' 
+set_localisations:57> dialog_dl_desc_nl='We moeten het macOS besturingssysteem downloaden.  \n\nDit kan enkele minuten duren, afhankelijk van uw internetverbinding.' 
+set_localisations:58> dialog_dl_desc_fr='Nous devons télécharger le programme d'\''installation de macOS sur votre ordinateur.  \n\nCela peut prendre plusieurs minutes, en fonction de votre connexion Internet.' 
+set_localisations:59> dialog_dl_desc_es='Necesitamos descargar el instalador de macOS en tu Mac.  \n\nEsto puede tardar varios minutos, dependiendo de tu conexión a Internet.' 
+set_localisations:60> dialog_dl_desc_pt='Precisamos baixar o instalador do macOS para o seu computador. \n\nIsso pode levar vários minutos, dependendo da sua conexão com a Internet.' 
+set_localisations:61> dialog_dl_desc_ja='macOS のインストーラをダウンロードしています。  \n\n回線状況によっては数分かかる場合があります。' 
+set_localisations:62> dialog_dl_desc_ua='«Нам потрібно завантажити програму встановлення macOS на ваш комп’ютер.  \n\nЦе може зайняти декілька хвилин, залежно від вашого інтернет-з’єднання.' 
+set_localisations:63> dialog_dl_desc=dialog_dl_desc_en 
+set_localisations:66> dialog_erase_title_en='Erasing macOS' 
+set_localisations:67> dialog_erase_title_de='macOS wiederherstellen' 
+set_localisations:68> dialog_erase_title_nl='macOS herinstalleren' 
+set_localisations:69> dialog_erase_title_fr='Effacement de macOS' 
+set_localisations:70> dialog_erase_title_es='Borrado de macOS' 
+set_localisations:71> dialog_erase_title_pt='Apagado de macOS' 
+set_localisations:72> dialog_erase_title_ja='macOS の消去' 
+set_localisations:73> dialog_erase_title_ua='Стирання macOS' 
+set_localisations:74> dialog_erase_title=dialog_erase_title_en 
+set_localisations:77> dialog_erase_desc_en='### Preparing the installer may take up to 30 minutes.  \n\nOnce completed your computer will reboot and continue the reinstallation.' 
+set_localisations:78> dialog_erase_desc_de='### Das Vorbereiten des Installationsprogramms kann bis zu 30 Minuten dauern.  \n\nNach Abschluss des Vorgangs wird Ihr Computer neu gestartet und die Neuinstallation fortgesetzt.' 
+set_localisations:79> dialog_erase_desc_nl='### Het voorbereiden van het installatieprogramma kan tot 30 minuten duren.  \n\nNa voltooiing zal uw computer opnieuw opstarten en de herinstallatie voortzetten.' 
+set_localisations:80> dialog_erase_desc_fr='### La préparation du programme d'\''installation peut prendre jusqu'\''à 30 minutes.  \n\nUne fois terminé, votre ordinateur redémarre et poursuit la réinstallation.' 
+set_localisations:81> dialog_erase_desc_es='### La preparación del instalador puede tardar hasta 30 minutos.  \n\nUna vez completado, tu Mac se reiniciará y continuará la reinstalación.' 
+set_localisations:82> dialog_erase_desc_pt='### A preparação do instalador pode levar até 30 minutos. \n\nDepois de concluído, seu computador será reiniciado e a reinstalação continuará.' 
+set_localisations:83> dialog_erase_desc_ja='### インストーラの準備には最大で30分かかる場合があります。  \n\n完了するとコンピュータが再起動し、再インストールが開始されます。' 
+set_localisations:84> dialog_erase_desc_ua='### Підготовка інсталятора може тривати до 30 хвилин.  \n\nПісля завершення ваш комп'\''ютер перезавантажиться та продовжить перевстановлення.' 
+set_localisations:85> dialog_erase_desc=dialog_erase_desc_en 
+set_localisations:88> dialog_reinstall_title_en='Upgrading macOS' 
+set_localisations:89> dialog_reinstall_title_de='macOS aktualisieren' 
+set_localisations:90> dialog_reinstall_title_nl='macOS upgraden' 
+set_localisations:91> dialog_reinstall_title_fr='Mise à niveau de macOS' 
+set_localisations:92> dialog_reinstall_title_es='Actualizando de macOS' 
+set_localisations:93> dialog_reinstall_title_pt='Atualizando o macOS' 
+set_localisations:94> dialog_reinstall_title_ja='macOS のアップグレード' 
+set_localisations:95> dialog_reinstall_title_ua='Оновлення macOS' 
+set_localisations:96> dialog_reinstall_title=dialog_reinstall_title_en 
+set_localisations:99> dialog_reinstall_heading_en='Please wait as we prepare your computer for upgrading macOS.' 
+set_localisations:100> dialog_reinstall_heading_de='Bitte warten Sie, während Ihren Computer für das Upgrade von macOS vorbereitet wird.' 
+set_localisations:101> dialog_reinstall_heading_nl='Even geduld terwijl we uw computer voorbereiden voor de upgrade van macOS.' 
+set_localisations:102> dialog_reinstall_heading_fr='Veuillez patienter pendant que nous préparons votre ordinateur pour la mise à niveau de macOS.' 
+set_localisations:103> dialog_reinstall_heading_es='Por favor, espera mientras preparamos tu mac para la actualización de macOS.' 
+set_localisations:104> dialog_reinstall_heading_pt='Aguarde enquanto preparamos seu computador para atualizar o macOS.' 
+set_localisations:105> dialog_reinstall_heading_ja='macOS アップグレードの準備をしています。しばらくお待ちください。' 
+set_localisations:106> dialog_reinstall_heading_ua='Зачекайте, поки ми підготуємо ваш комп’ютер до оновлення macOS.' 
+set_localisations:107> dialog_reinstall_heading=dialog_reinstall_heading_en 
+set_localisations:110> dialog_reinstall_desc_en='### Preparing the installer may take up to 30 minutes.  \n\nOnce completed your computer will reboot and begin the upgrade.' 
+set_localisations:111> dialog_reinstall_desc_de='### Dieser Prozess kann bis zu 30 Minuten benötigen.  \n\nDer Computer startet anschliessend neu und beginnt mit der Aktualisierung.' 
+set_localisations:112> dialog_reinstall_desc_nl='### Dit proces duurt ongeveer 30 minuten.  \n\nZodra dit is voltooid, wordt uw computer opnieuw opgestart en begint de upgrade.' 
+set_localisations:113> dialog_reinstall_desc_fr='### Ce processus peut prendre jusqu'\''à 30 minutes.  \n\nUne fois terminé, votre ordinateur redémarrera et commencera la mise à niveau.' 
+set_localisations:114> dialog_reinstall_desc_es='### La preparación del instalador puede tardar hasta 30 minutos.  \n\nUna vez completado, tu Mac se reiniciará y comenzará la actualización.' 
+set_localisations:115> dialog_reinstall_desc_pt='### A preparação do instalador pode levar até 30 minutos. \n\nDepois de concluído, seu computador será reiniciado e a atualização começará.' 
+set_localisations:116> dialog_reinstall_desc_ja='### インストーラの準備には最大で30分かかる場合があります。  \n\n完了するとコンピュータが再起動し、アップグレードが開始されます。' 
+set_localisations:117> dialog_reinstall_desc_ua='### Підготовка інсталятора може тривати до 30 хвилин.  \n\nПісля завершення комп'\''ютер перезавантажиться та почнеться оновлення.' 
+set_localisations:118> dialog_reinstall_desc=dialog_reinstall_desc_en 
+set_localisations:121> dialog_reinstall_status_en='Preparing macOS for installation' 
+set_localisations:122> dialog_reinstall_status_de='Vorbereiten von macOS für die Installation' 
+set_localisations:123> dialog_reinstall_status_nl='MacOS voorbereiden voor installatie' 
+set_localisations:124> dialog_reinstall_status_fr='Préparation de macOS pour l'\''installation' 
+set_localisations:125> dialog_reinstall_status_es='Preparación de macOS para la instalación' 
+set_localisations:126> dialog_reinstall_status_pt='Preparando o macOS para instalação' 
+set_localisations:127> dialog_reinstall_status_ja='macOS インストールの準備' 
+set_localisations:128> dialog_reinstall_status_ua='Підготовка macOS до встановлення' 
+set_localisations:129> dialog_reinstall_status=dialog_reinstall_status_en 
+set_localisations:132> dialog_rebooting_heading_en='The upgrade is now ready for installation.  \n\n### Save any open work now!' 
+set_localisations:133> dialog_rebooting_heading_de='Die macOS-Aktualisierung steht nun zur Installation bereit.  \n\n### Speichern Sie jetzt alle offenen Arbeiten ab!' 
+set_localisations:134> dialog_rebooting_heading_nl='De upgrade is nu klaar voor installatie.  \n\n### Bewaar nu al het open werk!' 
+set_localisations:135> dialog_rebooting_heading_fr='La mise à niveau est maintenant prête à être installée.  \n\n### Sauvegardez les travaux en cours maintenant!' 
+set_localisations:136> dialog_rebooting_heading_es='La actualización ya está lista para ser instalada.  \n\n### ¡Guarda ahora los trabajos pendientes!' 
+set_localisations:137> dialog_rebooting_heading_pt='A atualização agora está pronta para instalação. \n\n### Salve qualquer trabalho aberto agora!' 
+set_localisations:138> dialog_rebooting_heading_ja='アップグレードのインストール準備ができました。  \n\n### 開いているファイルがあれば保存してください!' 
+set_localisations:139> dialog_rebooting_heading_ua='Тепер оновлення готове до встановлення.  \n\n### Збережіть будь-яку відкриту роботу зараз!' 
+set_localisations:140> dialog_rebooting_heading=dialog_rebooting_heading_en 
+set_localisations:143> dialog_erase_confirmation_desc_en='Please confirm that you want to ERASE ALL DATA FROM THIS DEVICE and reinstall macOS' 
+set_localisations:144> dialog_erase_confirmation_desc_de='Bitte bestätigen Sie, dass Sie ALLE DATEN VON DIESEM GERÄT LÖSCHEN und macOS neu installieren wollen!' 
+set_localisations:145> dialog_erase_confirmation_desc_nl='Weet je zeker dat je ALLE GEGEVENS VAN DIT APPARAAT WILT WISSEN en macOS opnieuw installeert?' 
+set_localisations:146> dialog_erase_confirmation_desc_fr='Veuillez confirmer que vous souhaitez EFFACER TOUTES LES DONNÉES DE CET APPAREIL et réinstaller macOS' 
+set_localisations:147> dialog_erase_confirmation_desc_es='Por favor, confirma que deseas BORRAR TODOS LOS DATOS DE ESTE DISPOSITIVO y reinstalar macOS' 
+set_localisations:148> dialog_erase_confirmation_desc_pt='Confirme que deseja APAGAR TODOS OS DADOS DESTE DISPOSITIVO e reinstalar o macOS' 
+set_localisations:149> dialog_erase_confirmation_desc_ja='***このデバイスから全てのデータが消去***され、macOS が再インストールされます。ご確認ください。' 
+set_localisations:150> dialog_erase_confirmation_desc_ua='Будь ласка, підтвердіть, що ви хочете ВИДАЛИТИ ВСІ ДАНІ З ЦЬОГО ПРИСТРОЮ та переінсталювати macOS' 
+set_localisations:151> dialog_erase_confirmation_desc=dialog_erase_confirmation_desc_en 
+set_localisations:154> dialog_reinstall_confirmation_desc_en='Please confirm that you want to upgrade macOS on this system now' 
+set_localisations:155> dialog_reinstall_confirmation_desc_de='Bitte bestätigen Sie, dass Sie macOS auf diesem System jetzt aktualisieren möchten.' 
+set_localisations:156> dialog_reinstall_confirmation_desc_nl='Bevestig dat u macOS op dit systeem nu wilt updaten' 
+set_localisations:157> dialog_reinstall_confirmation_desc_fr='Veuillez confirmer que vous voulez mettre à jour macOS sur ce système maintenant.' 
+set_localisations:158> dialog_reinstall_confirmation_desc_es='Por favor, confirma que deseas actualizar macOS en este sistema ahora' 
+set_localisations:159> dialog_reinstall_confirmation_desc_pt='Confirme que deseja atualizar o macOS neste sistema agora' 
+set_localisations:160> dialog_reinstall_confirmation_desc_ja='このシステムで macOS をアップグレードすることをご確認ください。' 
+set_localisations:161> dialog_reinstall_confirmation_desc_ua='Будь ласка, підтвердіть, що ви хочете оновити macOS на цій системі зараз' 
+set_localisations:162> dialog_reinstall_confirmation_desc=dialog_reinstall_confirmation_desc_en 
+set_localisations:165> dialog_check_desc_en='The macOS upgrade cannot be installed as there is not enough space left on the drive.' 
+set_localisations:166> dialog_check_desc_de='macOS kann nicht aktualisiert werden, da nicht genügend Speicherplatz auf dem Laufwerk frei ist.' 
+set_localisations:167> dialog_check_desc_nl='De upgrade van macOS kan niet worden geïnstalleerd omdat er niet genoeg ruimte is op de schijf.' 
+set_localisations:168> dialog_check_desc_fr='La mise à niveau de macOS ne peut pas être installée car il n'\''y a pas assez d'\''espace disponible sur ce volume.' 
+set_localisations:169> dialog_check_desc_es='La actualización de macOS no se puede instalar porque no queda espacio suficiente en la unidad.' 
+set_localisations:170> dialog_check_desc_pt='A atualização do macOS não pode ser instalada porque não há espaço suficiente na unidade.' 
+set_localisations:171> dialog_check_desc_ja='ドライブに十分な空き領域がないため、macOS アップグレードをインストールできません。' 
+set_localisations:172> dialog_check_desc_ua='Оновлення macOS не вдається встановити, оскільки на диску залишилось недостатньо місця.' 
+set_localisations:173> dialog_check_desc=dialog_check_desc_en 
+set_localisations:176> dialog_power_title_en='Waiting for AC Power Connection' 
+set_localisations:177> dialog_power_title_de='Auf Netzteil warten' 
+set_localisations:178> dialog_power_title_nl='Wachten op stroomadapter' 
+set_localisations:179> dialog_power_title_fr='En attente de l'\''alimentation secteur' 
+set_localisations:180> dialog_power_title_es='A la espera de la conexión a la red eléctrica' 
+set_localisations:181> dialog_power_title_pt='Aguardando conexão de alimentação CA' 
+set_localisations:182> dialog_power_title_ja=電源アダプタの接続を待っています 
+set_localisations:183> dialog_power_title_ua='Очікування підключення зарядного пристрою' 
+set_localisations:184> dialog_power_title=dialog_power_title_en 
+set_localisations:187> dialog_power_desc_en='Please connect your computer to power using an AC power adapter.  \n\nThis process will continue if AC power is detected within the specified time.' 
+set_localisations:188> dialog_power_desc_de='Bitte verbinden Sie Ihren Computer mit einem Netzteil.  \n\nDieser Prozess wird fortgesetzt, wenn eine Stromversorgung innerhalb der folgenden Zeit erkannt wird:' 
+set_localisations:189> dialog_power_desc_nl='Sluit uw computer aan met de stroomadapter.  \n\nZodra deze is gedetecteerd gaat het proces verder binnen de volgende:' 
+set_localisations:190> dialog_power_desc_fr='Veuillez connecter votre ordinateur à un adaptateur secteur.  \n\nCe processus se poursuivra une fois que l'\''alimentation secteur sera détectée dans la suivante:' 
+set_localisations:191> dialog_power_desc_es='Conecta tu Mac a la corriente eléctrica mediante un adaptador de CA.  \n\nEste proceso continuará si se detecta alimentación de CA dentro del tiempo especificado.' 
+set_localisations:192> dialog_power_desc_pt='Conecte seu computador à energia usando um adaptador de energia CA. \in\Este processo continuará se a alimentação CA for detectada dentro do tempo especificado.' 
+set_localisations:193> dialog_power_desc_ja='コンピュータに電源アダプタを接続してください。  \n\n指定された時間内に電源アダプタが接続された場合、この処理は続行されます。' 
+set_localisations:194> dialog_power_desc_ua='Будь ласка, підключіть комп'\''ютер до мережі за допомогою зарядного пристрою.   \n\nЦей процес буде продовжено, якщо протягом зазначеного часу буде підключено зарядний пристрій.' 
+set_localisations:195> dialog_power_desc=dialog_power_desc_en 
+set_localisations:198> dialog_nopower_desc_en='### AC power was not connected in the specified time.  \n\nPress OK to quit.' 
+set_localisations:199> dialog_nopower_desc_de='### Die Netzspannung wurde nicht in der angegebenen Zeit angeschlossen.  \n\nZum Beenden OK drücken.' 
+set_localisations:200> dialog_nopower_desc_nl='### De netspanning was niet binnen de opgegeven tijd aangesloten.  \n\nDruk op OK om af te sluiten.' 
+set_localisations:201> dialog_nopower_desc_fr='### Le courant alternatif n'\''a pas été branché dans le délai spécifié.  \n\nAppuyez sur OK pour quitter.' 
+set_localisations:202> dialog_nopower_desc_es='### La alimentación de CA no se ha conectado en el tiempo especificado.  \n\nPulsa OK para salir.' 
+set_localisations:203> dialog_nopower_desc_pt='### A alimentação CA não foi conectada no tempo especificado. \n\nPressione OK para sair.' 
+set_localisations:204> dialog_nopower_desc_ja='### 指定された時間内に電源アダプタが接続されませんでした。  \n\nOK を押して終了してください。' 
+set_localisations:205> dialog_nopower_desc_ua='### Зарядний пристрій не було підключено вчасно  \n\nНатисніть OK, щоб вийти.' 
+set_localisations:206> dialog_nopower_desc=dialog_nopower_desc_en 
+set_localisations:209> dialog_fmm_title_en='Waiting for Find My Mac to be disabled' 
+set_localisations:210> dialog_fmm_title_de='Warte auf die Deaktivierung von «Meinen Mac suchen»' 
+set_localisations:211> dialog_fmm_title_nl='Wachten op Vind mijn Mac' 
+set_localisations:212> dialog_fmm_title_fr='En attente de Localiser mon Mac' 
+set_localisations:213> dialog_fmm_title_es='A la espera de la desactivacion de Buscar mi Mac' 
+set_localisations:214> dialog_fmm_title_pt='Aguardando que o Buscar no Mac seja desativado' 
+set_localisations:215> dialog_fmm_title_ja=「Macを探す」が無効になるのを待っています 
+set_localisations:216> dialog_fmm_title_ua='Очікування вимкнення функції Find My Mac' 
+set_localisations:217> dialog_fmm_title=dialog_fmm_title_en 
+set_localisations:220> dialog_fmm_desc_en='Please disable **Find My Mac** in your iCloud settings.  \n\nThis setting can be found in **System Preferences** > **Apple ID** > **iCloud**.  \n\nThis process will continue if Find My has been disabled within the specified time.' 
+set_localisations:221> dialog_fmm_desc_de='Bitte deaktiviere **«Meinen Mac suchen»** in Ihren iCloud-Einstellungen.  \n\nDiese Einstellung finden Sie in **Systemeinstellungen** > **Apple ID** > **iCloud**.  \n\nDieser Vorgang wird fortgesetzt, wenn «Meinen Mac suchen» innerhalb der angegebenen Zeit deaktiviert wurde.' 
+set_localisations:222> dialog_fmm_desc_nl='Schakel **Vind mijn Mac** uit in uw iCloud-instellingen.  \n\nDeze instelling vindt u in **Systeemvoorkeuren** > **Apple ID** > **iCloud**.  \n\nDit proces wordt voortgezet als **Vind mijn Mac** binnen de opgegeven tijd is uitgeschakeld.' 
+set_localisations:223> dialog_fmm_desc_fr='Veuillez désactiver **Localiser mon Mac** dans vos paramètres iCloud.  \n\nCe paramètre se trouve dans **Préférences système** > **Identifiant Apple** > **iCloud**.  \n\nCe processus se poursuivra si Localiser mon Mac a été désactivé dans le délai spécifié.' 
+set_localisations:224> dialog_fmm_desc_es='Por favor desactiva **Buscar mi Mac** en los ajustes de iCloud.  \n\nEste ajuste se encuentra en **Preferencias del sistema** > **ID de Apple** > **iCloud**.  \n\nEste proceso continuará si Buscar mi Mac se ha desactivado dentro del tiempo especificado.' 
+set_localisations:225> dialog_fmm_desc_pt='Desative **Buscar no Mac** nas configurações do iCloud. \n\nEssa configuração pode ser encontrada em **Preferências do Sistema** > **ID Apple** > **iCloud**. \n\nEsse processo continuará se o Buscar no Mac tiver sido desativado dentro do tempo especificado.' 
+set_localisations:226> dialog_fmm_desc_ja='iCloud の設定で「**Macを探す**」を無効にしてください。  \nこの設定は **システム環境設定** > **Apple ID** > **iCloud** にあります。  \n\n指定された時間内に「Macを探す」が無効になった場合、この処理は続行されます。' 
+set_localisations:227> dialog_fmm_desc_ua='Будь ласка, вимкніть **Find My Mac** у налаштуваннях iCloud.  \n\nЦей параметр можна знайти в **Системні налаштування** > **Apple ID** > **iCloud**.  \n\nЦей процес продовжиться, якщо функцію «Find My Mac» буде вимкнено протягом зазначеного часу.' 
+set_localisations:228> dialog_fmm_desc=dialog_fmm_desc_en 
+set_localisations:231> dialog_fmmenabled_desc_en='### Find My Mac was not disabled in the specified time.  \n\nPress OK to quit.' 
+set_localisations:232> dialog_fmmenabled_desc_de='### «Meinem Mac suchen» wurde nicht innerhalb der angegebenen Zeit deaktiviert.  \n\nZum Beenden OK drücken.' 
+set_localisations:233> dialog_fmmenabled_desc_nl='### Vind mijn Mac was niet uitgeschakeld in de opgegeven tijd.  \n\nDruk op OK om af te sluiten.' 
+set_localisations:234> dialog_fmmenabled_desc_fr='### Localiser mon Mac n'\''a pas été désactivé dans le temps imparti.  \n\nAppuyez sur OK pour quitter.' 
+set_localisations:235> dialog_fmmenabled_desc_es='### Buscar mi Mac no se ha desactivado en el tiempo especificado.  \n\nPulsa OK para salir.' 
+set_localisations:236> dialog_fmmenabled_desc_pt='### Buscar no Mac não foi desativado no tempo especificado. \n\nPressione OK para sair.' 
+set_localisations:237> dialog_fmmenabled_desc_ja='### 「Macを探す」は指定された時間内に無効になりませんでした。  \n\nOK を押して終了してください。' 
+set_localisations:238> dialog_fmmenabled_desc_ua='### Find My Mac не було вимкнено вчасно. \n\nНатисніть OK, щоб вийти.' 
+set_localisations:239> dialog_fmmenabled_desc=dialog_fmmenabled_desc_en 
+set_localisations:242> dialog_erase_credentials_en='Erasing macOS requires authentication using local account credentials.  \n\nPlease enter your account name and password to start the erase process.' 
+set_localisations:243> dialog_erase_credentials_de='Das Löschen von macOS erfordert eine Authentifizierung mit den Anmeldedaten des lokalen Kontos.  \n\nBitte geben Sie Ihren Kontonamen und Ihr Passwort ein, um den Löschvorgang zu starten.' 
+set_localisations:244> dialog_erase_credentials_nl='Voor het wissen van macOS is verificatie met behulp van lokale accountgegevens vereist.  \n\nVoer uw accountnaam en wachtwoord in om het wisproces te starten.' 
+set_localisations:245> dialog_erase_credentials_fr='L'\''effacement de macOS nécessite une authentification à l'\''aide des informations d'\''identification du compte local.  \n\nVeuillez saisir votre nom de compte et votre mot de passe pour lancer le processus d'\''effacement.' 
+set_localisations:246> dialog_erase_credentials_es='El borrado de macOS requiere la autenticación mediante las credenciales de la cuenta de usuario local.  \n\nIntroduce tu nombre de usuario y contraseña para iniciar el proceso de borrado.' 
+set_localisations:247> dialog_erase_credentials_pt='Apagar o macOS requer autenticação usando credenciais de conta local. \n\nDigite seu nome de conta e senha para iniciar o processo de exclusão.' 
+set_localisations:248> dialog_erase_credentials_ja='macOS を消去するには、ローカルアカウントの資格情報による認証が必要です。  \n\nアカウント名とパスワードを入力して消去を開始してください。' 
+set_localisations:249> dialog_erase_credentials_ua='Видалення macOS вимагає автентифікації за допомогою локальних облікових даних.  \n\nБудь ласка, введіть ім'\''я та пароль вашого облікового запису, щоб розпочати процес стирання.' 
+set_localisations:250> dialog_erase_credentials=dialog_erase_credentials_en 
+set_localisations:253> dialog_reinstall_credentials_en='Upgrading macOS requires authentication using local account credentials.  \n\nPlease enter your account name and password to start the upgrade process.' 
+set_localisations:254> dialog_reinstall_credentials_de='Das Upgrade von macOS erfordert eine Authentifizierung mit den Anmeldedaten des lokalen Kontos.  \n\nBitte geben Sie Ihren Kontonamen und Ihr Passwort ein, um den Upgrade-Prozess zu starten.' 
+set_localisations:255> dialog_reinstall_credentials_nl='Voor het upgraden van macOS is verificatie met behulp van lokale accountgegevens vereist.  \n\nVoer uw accountnaam en wachtwoord in om het upgradeproces te starten.' 
+set_localisations:256> dialog_reinstall_credentials_fr='La mise à niveau de macOS nécessite une authentification à l'\''aide des informations d'\''identification du compte local.  \n\nVeuillez saisir votre nom de compte et votre mot de passe pour lancer le processus de mise à niveau.' 
+set_localisations:257> dialog_reinstall_credentials_es='La actualización de macOS requiere la autenticación mediante las credenciales de la cuenta de usuario local.  \n\nIntroduce el nombre de tu usuario y la contraseña para iniciar el proceso de actualización.' 
+set_localisations:258> dialog_reinstall_credentials_pt='A atualização do macOS requer autenticação usando credenciais de conta local. \n\nDigite seu nome de conta e senha para iniciar o processo de atualização.' 
+set_localisations:259> dialog_reinstall_credentials_ja='macOS をアップグレードするには、ローカルアカウントの資格情報による認証が必要です。  \n\nアカウント名とパスワードを入力してアップグレードを開始してください。' 
+set_localisations:260> dialog_reinstall_credentials_ua='Оновлення macOS вимагає автентифікації за допомогою локальних облікових даних.  \n\nБудь ласка, введіть ім'\''я та пароль вашого облікового запису, щоб розпочати процес оновлення.' 
+set_localisations:261> dialog_reinstall_credentials=dialog_reinstall_credentials_en 
+set_localisations:264> dialog_not_volume_owner_en='### Account is not a Volume Owner  \n\nPlease login using one of the following accounts and try again.' 
+set_localisations:265> dialog_not_volume_owner_de='### Konto ist kein Volume-Besitzer  \n\nBitte melden Sie sich mit einem der folgenden Konten an und versuchen Sie es erneut.' 
+set_localisations:266> dialog_not_volume_owner_nl='### Account is geen volume-eigenaar  \n\nLog in met een van de volgende accounts en probeer het opnieuw.' 
+set_localisations:267> dialog_not_volume_owner_fr='### Le compte n'\''est pas propriétaire du volume  \n\nVeuillez vous connecter en utilisant l'\''un des comptes suivants et réessayer.' 
+set_localisations:268> dialog_not_volume_owner_es='### La cuenta de usuario no es un Volume Owner   \n\nPor favor, inicie sesión con una de las siguientes cuentas de usuario e inténtelo de nuevo.' 
+set_localisations:269> dialog_not_volume_owner_pt='### A conta não é um Volume Owner \n\nFaça login usando uma das contas a seguir e tente novamente.' 
+set_localisations:270> dialog_not_volume_owner_ja='### アカウントがボリュームのオーナーではありません  \n\n次のいずれかのアカウントで再度ログインをお試しください。' 
+set_localisations:271> dialog_not_volume_owner_ua='### Обліковий запис не є Власником тому  \n\nБудь ласка, увійдіть за допомогою одного з наступних облікових записів і спробуйте ще раз.' 
+set_localisations:272> dialog_not_volume_owner=dialog_not_volume_owner_en 
+set_localisations:275> dialog_invalid_user_en='### Incorrect user  \n\nThis account cannot be used to to perform the reinstall' 
+set_localisations:276> dialog_invalid_user_de='### Falsche Benutzer  \n\nDieses Konto kann nicht zur Durchführung der Neuinstallation verwendet werden' 
+set_localisations:277> dialog_invalid_user_nl='### Incorrecte account  \n\nDit account kan niet worden gebruikt om de herinstallatie uit te voeren' 
+set_localisations:278> dialog_invalid_user_fr='### Mauvais utilisateur  \n\nCe compte ne peut pas être utilisé pour effectuer la réinstallation' 
+set_localisations:279> dialog_invalid_user_es='### Usuario incorrecto  \n\nEsta cuenta de usuario no puede ser utilizada para realizar la reinstalación' 
+set_localisations:280> dialog_invalid_user_pt='### Usuário incorreto \n\nEsta conta não pode ser usada para realizar a reinstalação' 
+set_localisations:281> dialog_invalid_user_ja='### ユーザーが間違っています  \n\nこのアカウントでは再インストールを実行できません' 
+set_localisations:282> dialog_invalid_user_ua='### Неправильний користувач  \n\nЦей обліковий запис не може бути використаний для перевстановлення' 
+set_localisations:283> dialog_invalid_user=dialog_invalid_user_en 
+set_localisations:286> dialog_invalid_password_en='### Incorrect password  \n\nThe password entered is NOT the login password for' 
+set_localisations:287> dialog_invalid_password_de='### Falsches Passwort  \n\nDas eingegebene Passwort ist NICHT das Anmeldepasswort für' 
+set_localisations:288> dialog_invalid_password_nl='### Incorrect wachtwoord  \n\nHet ingevoerde wachtwoord is NIET het inlogwachtwoord voor' 
+set_localisations:289> dialog_invalid_password_fr='### Mot de passe erroné  \n\nLe mot de passe entré n'\''est PAS le mot de passe de connexion pour' 
+set_localisations:290> dialog_invalid_password_es='### Contraseña incorrecta  \n\nLa contraseña introducida NO es la contraseña de acceso a' 
+set_localisations:291> dialog_invalid_password_pt='### Senha incorreta \n\nA senha digitada NÃO é a senha de login para' 
+set_localisations:292> dialog_invalid_password_ja='### パスワードが間違っています  \n\n入力されたパスワードは、このアカウントのログインパスワードではありません' 
+set_localisations:293> dialog_invalid_password_ua='### Неправильний пароль  \n\nВведений пароль НЕ є паролем для входу до' 
+set_localisations:294> dialog_invalid_password=dialog_invalid_password_en 
+set_localisations:297> dialog_confirmation_button_en=Confirm 
+set_localisations:298> dialog_confirmation_button_de=Bestätigen 
+set_localisations:299> dialog_confirmation_button_nl=Bevestig 
+set_localisations:300> dialog_confirmation_button_fr=Confirmer 
+set_localisations:301> dialog_confirmation_button_es=Confirmar 
+set_localisations:302> dialog_confirmation_button_pt=Confirmar 
+set_localisations:303> dialog_confirmation_button_ja=確認 
+set_localisations:304> dialog_confirmation_button_ua=Підтвердити 
+set_localisations:305> dialog_confirmation_button=dialog_confirmation_button_en 
+set_localisations:308> dialog_cancel_button_en=Cancel 
+set_localisations:309> dialog_cancel_button_de=Abbrechen 
+set_localisations:310> dialog_cancel_button_nl=Annuleren 
+set_localisations:311> dialog_cancel_button_fr=Annuler 
+set_localisations:312> dialog_cancel_button_es=Cancelar 
+set_localisations:313> dialog_cancel_button_pt=Cancelar 
+set_localisations:314> dialog_cancel_button_ja=キャンセル 
+set_localisations:315> dialog_cancel_button_ua=Скасувати 
+set_localisations:316> dialog_cancel_button=dialog_cancel_button_en 
+set_localisations:319> dialog_enter_button_en=Enter 
+set_localisations:320> dialog_enter_button_de=Eingeben 
+set_localisations:321> dialog_enter_button_nl=Enter 
+set_localisations:322> dialog_enter_button_fr=Entrer 
+set_localisations:323> dialog_enter_button_es=Entrar 
+set_localisations:324> dialog_enter_button_pt=Digitar 
+set_localisations:325> dialog_enter_button_ja=実行 
+set_localisations:326> dialog_enter_button_ua=Гаразд 
+set_localisations:327> dialog_enter_button=dialog_enter_button_en 
+/Library/Management/erase-install/erase-install.sh:4013> system_version=+/Library/Management/erase-install/erase-install.sh:4013> /usr/bin/sw_vers -productVersion
+/Library/Management/erase-install/erase-install.sh:4013> system_version=15.7.4 
+/Library/Management/erase-install/erase-install.sh:4014> system_build=+/Library/Management/erase-install/erase-install.sh:4014> /usr/bin/sw_vers -buildVersion
+/Library/Management/erase-install/erase-install.sh:4014> system_build=24G517 
+/Library/Management/erase-install/erase-install.sh:4016> writelog '[erase-install] System version: 15.7.4 (Build: 24G517)'
+writelog:1> DATE=+writelog:1> date '+%Y-%m-%d %H:%M:%S'
+writelog:1> DATE='2026-02-12 14:48:57' 
+writelog:2> echo '2026-02-12 14:48:57 | v40.4 | [erase-install] System version: 15.7.4 (Build: 24G517)'
2026-02-12 14:48:57 | v40.4 | [erase-install] System version: 15.7.4 (Build: 24G517)
+/Library/Management/erase-install/erase-install.sh:4019> [[ '' != yes ]]
+/Library/Management/erase-install/erase-install.sh:4020> is-at-least 13 15.7.4
+is-at-least:23> emulate -L zsh
+is-at-least:25> local IFS=.- min_cnt=0 ver_cnt=0 part min_ver version order
+is-at-least:27> min_ver=( 13 ) 
+is-at-least:28> version=( 15 7 4 0 ) 
+is-at-least:30> ((  0 <= 1  ))
+is-at-least:31> [[ '' != <-> ]]
+is-at-least:32> ((  ++ver_cnt > 4  ))
+is-at-least:33> [[ 15 = *[0-9][^0-9]* ]]
+is-at-least:45> part=15 
+is-at-least:31> [[ 15 != <-> ]]
+is-at-least:48> true
+is-at-least:49> ((  ++min_cnt > 1  ))
+is-at-least:50> [[ 13 = <-> ]]
+is-at-least:50> break
+is-at-least:53> ((  part > min_ver[min_cnt]  ))
+is-at-least:53> return 0
+/Library/Management/erase-install/erase-install.sh:4021> latest_erase_install_vers=+/Library/Management/erase-install/erase-install.sh:4021> /usr/bin/curl https://api.github.com/repos/grahampugh/erase-install/releases/latest
+/Library/Management/erase-install/erase-install.sh:4021> latest_erase_install_vers=+/Library/Management/erase-install/erase-install.sh:4021> plutil -extract name raw -- -
+/Library/Management/erase-install/erase-install.sh:4021> latest_erase_install_vers=v40.4 
+/Library/Management/erase-install/erase-install.sh:4022> is-at-least v40.4 40.4
+is-at-least:23> emulate -L zsh
+is-at-least:25> local IFS=.- min_cnt=0 ver_cnt=0 part min_ver version order
+is-at-least:27> min_ver=( v40 4 ) 
+is-at-least:28> version=( 40 4 0 ) 
+is-at-least:30> ((  0 <= 2  ))
+is-at-least:31> [[ '' != <-> ]]
+is-at-least:32> ((  ++ver_cnt > 3  ))
+is-at-least:33> [[ 40 = *[0-9][^0-9]* ]]
+is-at-least:45> part=40 
+is-at-least:31> [[ 40 != <-> ]]
+is-at-least:48> true
+is-at-least:49> ((  ++min_cnt > 2  ))
+is-at-least:50> [[ v40 = <-> ]]
+is-at-least:48> true
+is-at-least:49> ((  ++min_cnt > 2  ))
+is-at-least:50> [[ 4 = <-> ]]
+is-at-least:50> break
+is-at-least:53> ((  part > min_ver[min_cnt]  ))
+is-at-least:53> return 0
+/Library/Management/erase-install/erase-install.sh:4029> is-at-least 10.15 15.7.4
+is-at-least:23> emulate -L zsh
+is-at-least:25> local IFS=.- min_cnt=0 ver_cnt=0 part min_ver version order
+is-at-least:27> min_ver=( 10 15 ) 
+is-at-least:28> version=( 15 7 4 0 ) 
+is-at-least:30> ((  0 <= 2  ))
+is-at-least:31> [[ '' != <-> ]]
+is-at-least:32> ((  ++ver_cnt > 4  ))
+is-at-least:33> [[ 15 = *[0-9][^0-9]* ]]
+is-at-least:45> part=15 
+is-at-least:31> [[ 15 != <-> ]]
+is-at-least:48> true
+is-at-least:49> ((  ++min_cnt > 2  ))
+is-at-least:50> [[ 10 = <-> ]]
+is-at-least:50> break
+is-at-least:53> ((  part > min_ver[min_cnt]  ))
+is-at-least:53> return 0
+/Library/Management/erase-install/erase-install.sh:4035> [[ ! -n '' ]]
+/Library/Management/erase-install/erase-install.sh:4037> is-at-least 11 15.7.4
+is-at-least:23> emulate -L zsh
+is-at-least:25> local IFS=.- min_cnt=0 ver_cnt=0 part min_ver version order
+is-at-least:27> min_ver=( 11 ) 
+is-at-least:28> version=( 15 7 4 0 ) 
+is-at-least:30> ((  0 <= 1  ))
+is-at-least:31> [[ '' != <-> ]]
+is-at-least:32> ((  ++ver_cnt > 4  ))
+is-at-least:33> [[ 15 = *[0-9][^0-9]* ]]
+is-at-least:45> part=15 
+is-at-least:31> [[ 15 != <-> ]]
+is-at-least:48> true
+is-at-least:49> ((  ++min_cnt > 1  ))
+is-at-least:50> [[ 11 = <-> ]]
+is-at-least:50> break
+is-at-least:53> ((  part > min_ver[min_cnt]  ))
+is-at-least:53> return 0
+/Library/Management/erase-install/erase-install.sh:4043> check_for_swiftdialog_app
+check_for_swiftdialog_app:2> [[ -d /Library/Management/erase-install/Dialog.app ]]
+check_for_swiftdialog_app:3> dialog_bin=/Library/Management/erase-install/Dialog.app/Contents/MacOS/Dialog 
+check_for_swiftdialog_app:4> dialog_string=+check_for_swiftdialog_app:4> /Library/Management/erase-install/Dialog.app/Contents/MacOS/Dialog --version
+check_for_swiftdialog_app:4> dialog_string=2.5.6.4805 
+check_for_swiftdialog_app:5> dialog_minor_vers=+check_for_swiftdialog_app:5> cut -d. -f1,2
+check_for_swiftdialog_app:5> dialog_minor_vers=2.5 
+check_for_swiftdialog_app:6> [[+check_for_swiftdialog_app:6> echo '2.5 > 2.2'
+check_for_swiftdialog_app:6> [[+check_for_swiftdialog_app:6> bc
+check_for_swiftdialog_app:6> [[ 1 -eq 1 ]]
+check_for_swiftdialog_app:6> is-at-least 12 15.7.4
+is-at-least:23> emulate -L zsh
+is-at-least:25> local IFS=.- min_cnt=0 ver_cnt=0 part min_ver version order
+is-at-least:27> min_ver=( 12 ) 
+is-at-least:28> version=( 15 7 4 0 ) 
+is-at-least:30> ((  0 <= 1  ))
+is-at-least:31> [[ '' != <-> ]]
+is-at-least:32> ((  ++ver_cnt > 4  ))
+is-at-least:33> [[ 15 = *[0-9][^0-9]* ]]
+is-at-least:45> part=15 
+is-at-least:31> [[ 15 != <-> ]]
+is-at-least:48> true
+is-at-least:49> ((  ++min_cnt > 1  ))
+is-at-least:50> [[ 12 = <-> ]]
+is-at-least:50> break
+is-at-least:53> ((  part > min_ver[min_cnt]  ))
+is-at-least:53> return 0
+check_for_swiftdialog_app:15> [[ ! -d /Library/Management/erase-install/Dialog.app ]]
+check_for_swiftdialog_app:26> [[ -f /Library/Management/erase-install/Dialog.app/Contents/MacOS/Dialog && v2.5.6.4805 == v2.5.6* ]]
+check_for_swiftdialog_app:27> writelog '[check_for_swiftdialog_app] swiftDialog binary v2.5.6.4805 is installed (/Library/Management/erase-install/Dialog.app/Contents/MacOS/Dialog)'
+writelog:1> DATE=+writelog:1> date '+%Y-%m-%d %H:%M:%S'
+writelog:1> DATE='2026-02-12 14:48:58' 
+writelog:2> echo '2026-02-12 14:48:58 | v40.4 | [check_for_swiftdialog_app] swiftDialog binary v2.5.6.4805 is installed (/Library/Management/erase-install/Dialog.app/Contents/MacOS/Dialog)'
2026-02-12 14:48:58 | v40.4 | [check_for_swiftdialog_app] swiftDialog binary v2.5.6.4805 is installed (/Library/Management/erase-install/Dialog.app/Contents/MacOS/Dialog)
+check_for_swiftdialog_app:96> writelog '[check_for_swiftdialog_app] Creating dialog log (/var/tmp/dialog.RUu)...'
+writelog:1> DATE=+writelog:1> date '+%Y-%m-%d %H:%M:%S'
+writelog:1> DATE='2026-02-12 14:48:58' 
+writelog:2> echo '2026-02-12 14:48:58 | v40.4 | [check_for_swiftdialog_app] Creating dialog log (/var/tmp/dialog.RUu)...'
2026-02-12 14:48:58 | v40.4 | [check_for_swiftdialog_app] Creating dialog log (/var/tmp/dialog.RUu)...
+check_for_swiftdialog_app:97> /usr/bin/touch /var/tmp/dialog.RUu
+check_for_swiftdialog_app:98> /usr/sbin/chown rimorton:wheel /var/tmp/dialog.RUu
+check_for_swiftdialog_app:99> /bin/chmod 666 /var/tmp/dialog.RUu
+/Library/Management/erase-install/erase-install.sh:4046> [[ yes == yes ]]
+/Library/Management/erase-install/erase-install.sh:4047> tmpcurlfile=+/Library/Management/erase-install/erase-install.sh:4047> mktemp -t InstallAssistantDownload.XXXXXX
+/Library/Management/erase-install/erase-install.sh:4047> tmpcurlfile=/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/InstallAssistantDownload.XXXXXX.yBruB3yyhf 
+/Library/Management/erase-install/erase-install.sh:4049> command -v jq
+/Library/Management/erase-install/erase-install.sh:4050> writelog '[erase-install] jq is installed, proceeding with --native mode.'
+writelog:1> DATE=+writelog:1> date '+%Y-%m-%d %H:%M:%S'
+writelog:1> DATE='2026-02-12 14:48:58' 
+writelog:2> echo '2026-02-12 14:48:58 | v40.4 | [erase-install] jq is installed, proceeding with --native mode.'
2026-02-12 14:48:58 | v40.4 | [erase-install] jq is installed, proceeding with --native mode.
+/Library/Management/erase-install/erase-install.sh:4051> jq_bin=+/Library/Management/erase-install/erase-install.sh:4051> command -v jq
+/Library/Management/erase-install/erase-install.sh:4051> jq_bin=/usr/bin/jq 
+/Library/Management/erase-install/erase-install.sh:4060> [[ -n '' ]]
+/Library/Management/erase-install/erase-install.sh:4070> [[ -n '' ]]
+/Library/Management/erase-install/erase-install.sh:4081> [[ no == yes ]]
+/Library/Management/erase-install/erase-install.sh:4084> [[ -n '' || -n '' || -n 26.3 && -n '' || -n '' || -n '' ]]
+/Library/Management/erase-install/erase-install.sh:4087> [[ '' == yes || '' == yes || '' == yes ]]
+/Library/Management/erase-install/erase-install.sh:4093> is-at-least 13 15.7.4
+is-at-least:23> emulate -L zsh
+is-at-least:25> local IFS=.- min_cnt=0 ver_cnt=0 part min_ver version order
+is-at-least:27> min_ver=( 13 ) 
+is-at-least:28> version=( 15 7 4 0 ) 
+is-at-least:30> ((  0 <= 1  ))
+is-at-least:31> [[ '' != <-> ]]
+is-at-least:32> ((  ++ver_cnt > 4  ))
+is-at-least:33> [[ 15 = *[0-9][^0-9]* ]]
+is-at-least:45> part=15 
+is-at-least:31> [[ 15 != <-> ]]
+is-at-least:48> true
+is-at-least:49> ((  ++min_cnt > 1  ))
+is-at-least:50> [[ 13 = <-> ]]
+is-at-least:50> break
+is-at-least:53> ((  part > min_ver[min_cnt]  ))
+is-at-least:53> return 0
+/Library/Management/erase-install/erase-install.sh:4098> [[ no == yes ]]
+/Library/Management/erase-install/erase-install.sh:4103> [[ ! -d /Applications ]]
+/Library/Management/erase-install/erase-install.sh:4109> [[ '' == yes ]]
+/Library/Management/erase-install/erase-install.sh:4126> [[ 0 -ne 0 ]]
+/Library/Management/erase-install/erase-install.sh:4132> writelog '[erase-install] Caffeinating this script (pid=9706)'
+writelog:1> DATE=+writelog:1> date '+%Y-%m-%d %H:%M:%S'
+writelog:1> DATE='2026-02-12 14:48:58' 
+writelog:2> echo '2026-02-12 14:48:58 | v40.4 | [erase-install] Caffeinating this script (pid=9706)'
2026-02-12 14:48:58 | v40.4 | [erase-install] Caffeinating this script (pid=9706)
+/Library/Management/erase-install/erase-install.sh:4136> [[ no == yes ]]
+/Library/Management/erase-install/erase-install.sh:4133> /usr/bin/caffeinate -dimsu -w 9706
+/Library/Management/erase-install/erase-install.sh:4139> dialog_window_title='Upgrading macOS' 
+/Library/Management/erase-install/erase-install.sh:4142> [[ no == yes || yes == yes ]]
+/Library/Management/erase-install/erase-install.sh:4144> check_free_space
+check_free_space:1> free_disk_space=+check_free_space:1> osascript -l JavaScript -e 'ObjC.import('\''Foundation'\''); var freeSpaceBytesRef=Ref(); $.NSURL.fileURLWithPath('\''/'\'').getResourceValueForKeyError(freeSpaceBytesRef, '\''NSURLVolumeAvailableCapacityForImportantUsageKey'\'', null); Math.round(ObjC.unwrap(freeSpaceBytesRef[0]) / 1000000000)'
+check_free_space:1> free_disk_space=416 
+check_free_space:3> [[ ! -n 416 ]]
+check_free_space:3> [[ 416 == 0 ]]
+check_free_space:9> [[ 416 -ge 50 ]]
+check_free_space:10> writelog '[check_free_space] OK - 416 GB free/purgeable disk space detected'
+writelog:1> DATE=+writelog:1> date '+%Y-%m-%d %H:%M:%S'
+writelog:1> DATE='2026-02-12 14:48:58' 
+writelog:2> echo '2026-02-12 14:48:58 | v40.4 | [check_free_space] OK - 416 GB free/purgeable disk space detected'
2026-02-12 14:48:58 | v40.4 | [check_free_space] OK - 416 GB free/purgeable disk space detected
+/Library/Management/erase-install/erase-install.sh:4147> [[ '' == yes ]]
+/Library/Management/erase-install/erase-install.sh:4153> writelog '[erase-install] Looking for existing installer app or pkg'
+writelog:1> DATE=+writelog:1> date '+%Y-%m-%d %H:%M:%S'
+writelog:1> DATE='2026-02-12 14:48:58' 
+writelog:2> echo '2026-02-12 14:48:58 | v40.4 | [erase-install] Looking for existing installer app or pkg'
2026-02-12 14:48:58 | v40.4 | [erase-install] Looking for existing installer app or pkg
+/Library/Management/erase-install/erase-install.sh:4156> [[ -f /Library/Management/erase-install/InstallAssistantDownload.pkg ]]
+/Library/Management/erase-install/erase-install.sh:4161> find_existing_installer
+find_existing_installer:2> cached_installer_app=+find_existing_installer:2> find /Applications -maxdepth 1 -name 'Install macOS*.app' -type d -print -quit
+find_existing_installer:2> cached_installer_app='' 
+find_existing_installer:3> cached_installer_app_in_workdir=+find_existing_installer:3> find /Library/Management/erase-install -maxdepth 1 -name 'Install macOS*.app' -type d -print -quit
+find_existing_installer:3> cached_installer_app_in_workdir='' 
+find_existing_installer:4> cached_installer_pkg=+find_existing_installer:4> find /Library/Management/erase-install -maxdepth 1 -name 'InstallAssistant*.pkg' -type f -print -quit
+find_existing_installer:4> cached_installer_pkg='' 
+find_existing_installer:6> [[ -d '' ]]
+find_existing_installer:10> [[ -d '' ]]
+find_existing_installer:14> [[ -f '' ]]
+find_existing_installer:18> writelog '[find_existing_installer] No valid installer found.'
+writelog:1> DATE=+writelog:1> date '+%Y-%m-%d %H:%M:%S'
+writelog:1> DATE='2026-02-12 14:48:58' 
+writelog:2> echo '2026-02-12 14:48:58 | v40.4 | [find_existing_installer] No valid installer found.'
2026-02-12 14:48:58 | v40.4 | [find_existing_installer] No valid installer found.
+find_existing_installer:19> [[ '' == yes ]]
+/Library/Management/erase-install/erase-install.sh:4165> [[ yes == yes && '' == yes ]]
+/Library/Management/erase-install/erase-install.sh:4173> do_overwrite_existing_installer=0 
+/Library/Management/erase-install/erase-install.sh:4175> [[ '' == yes ]]
+/Library/Management/erase-install/erase-install.sh:4180> [[ -n '' ]]
+/Library/Management/erase-install/erase-install.sh:4191> [[ -n '' ]]
+/Library/Management/erase-install/erase-install.sh:4206> [[ '' == yes ]]
+/Library/Management/erase-install/erase-install.sh:4222> [[ '' == yes ]]
+/Library/Management/erase-install/erase-install.sh:4241> [[ 0 == 1 ]]
+/Library/Management/erase-install/erase-install.sh:4249> [[+/Library/Management/erase-install/erase-install.sh:4249> /usr/sbin/sysctl -q -n hw.optional.arm64
+/Library/Management/erase-install/erase-install.sh:4249> [[ 1 -eq 1 ]]
+/Library/Management/erase-install/erase-install.sh:4249> arch=arm64 
+/Library/Management/erase-install/erase-install.sh:4250> writelog '[erase-install] Running on architecture arm64'
+writelog:1> DATE=+writelog:1> date '+%Y-%m-%d %H:%M:%S'
+writelog:1> DATE='2026-02-12 14:48:58' 
+writelog:2> echo '2026-02-12 14:48:58 | v40.4 | [erase-install] Running on architecture arm64'
2026-02-12 14:48:58 | v40.4 | [erase-install] Running on architecture arm64
+/Library/Management/erase-install/erase-install.sh:4251> [[ arm64 == arm64 && no == yes || yes == yes ]]
+/Library/Management/erase-install/erase-install.sh:4252> get_user_details
+get_user_details:2> password_attempts=1 
+get_user_details:3> password_check=fail 
+get_user_details:4> [[ fail != pass ]]
+get_user_details:5> writelog '[get_user_details] ask for user credentials (attempt 1/5)'
+writelog:1> DATE=+writelog:1> date '+%Y-%m-%d %H:%M:%S'
+writelog:1> DATE='2026-02-12 14:48:58' 
+writelog:2> echo '2026-02-12 14:48:58 | v40.4 | [get_user_details] ask for user credentials (attempt 1/5)'
2026-02-12 14:48:58 | v40.4 | [get_user_details] ask for user credentials (attempt 1/5)
+get_user_details:9> [[ 1 = 1 && -n '' ]]
+get_user_details:11> [[ 1 = 1 && -n '' ]]
+get_user_details:32> pgrep -q Finder
+get_user_details:38> [[ ! -n '' ]]
+get_user_details:39> ask_for_credentials
+ask_for_credentials:2> get_default_dialog_args utility
+get_default_dialog_args:3> default_dialog_args=( --bannerimage 'colour=#056AE6' --commandfile /var/tmp/dialog.RUu --ontop --json --ignorednd --position centre --quitkey c ) 
+get_default_dialog_args:12> [[ utility == fullscreen ]]
+get_default_dialog_args:24> [[ utility == utility ]]
+get_default_dialog_args:25> writelog '[get_default_dialog_args] Invoking utility dialog'
+writelog:1> DATE=+writelog:1> date '+%Y-%m-%d %H:%M:%S'
+writelog:1> DATE='2026-02-12 14:48:58' 
+writelog:2> echo '2026-02-12 14:48:58 | v40.4 | [get_default_dialog_args] Invoking utility dialog'
2026-02-12 14:48:58 | v40.4 | [get_default_dialog_args] Invoking utility dialog
+get_default_dialog_args:26> default_dialog_args+=( --bannerheight 40 --moveable --width 600 --height 300 --titlefont 'size=20,shadow=1' --messagefont 'size=14' --alignment left ) 
+ask_for_credentials:3> dialog_args=( --bannerimage 'colour=#056AE6' --commandfile /var/tmp/dialog.RUu --ontop --json --ignorednd --position centre --quitkey c --bannerheight 40 --moveable --width 600 --height 300 --titlefont 'size=20,shadow=1' --messagefont 'size=14' --alignment left ) 
+ask_for_credentials:4> dialog_args+=( --bannertitle 'Upgrading macOS' --icon '/System/Applications/System Settings.app' --overlayicon 'SF=key.fill' --iconsize 128 --textfield 'Username,prompt=rimorton' --textfield Password,secure --button1text Continue --timer 300 --hidetimerbar ) 
+ask_for_credentials:15> [[ no == yes ]]
+ask_for_credentials:20> dialog_args+=( --message 'Upgrading macOS requires authentication using local account credentials.  \n\nPlease enter your account name and password to start the upgrade process.' ) 
+ask_for_credentials:24> [[ 5 != infinite ]]
+ask_for_credentials:25> dialog_args+=( -2 ) 
+ask_for_credentials:29> /Library/Management/erase-install/Dialog.app/Contents/MacOS/Dialog --bannerimage 'colour=#056AE6' --commandfile /var/tmp/dialog.RUu --ontop --json --ignorednd --position centre --quitkey c --bannerheight 40 --moveable --width 600 --height 300 --titlefont 'size=20,shadow=1' --messagefont 'size=14' --alignment left --bannertitle 'Upgrading macOS' --icon '/System/Applications/System Settings.app' --overlayicon 'SF=key.fill' --iconsize 128 --textfield 'Username,prompt=rimorton' --textfield Password,secure --button1text Continue --timer 300 --hidetimerbar --message 'Upgrading macOS requires authentication using local account credentials.  \n\nPlease enter your account name and password to start the upgrade process.' -2 -AppleLanguages '(en-US)' -AppleAccentColor 4
+get_user_details:40> [[ 0 -eq 2 ]]
+get_user_details:46> echo HERE
HERE
+get_user_details:47> echo /var/tmp/dialog.json
/var/tmp/dialog.json
+get_user_details:48> ls -al /var/tmp/dialog.json
-rw-r--r--  1 root  wheel  67 Feb 12 14:49 /var/tmp/dialog.json
+get_user_details:49> cat /var/tmp/dialog.json
{
  "Password" : "!@M@p@$$w0rd",
  "Username" : "rimorton"
}
+get_user_details:50> sleep 10
+get_user_details:51> account_shortname=+get_user_details:51> ljt /Username

Screenshots
If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

  • OS version [e.g. 15.7.3 and 15.7.4]
  • erase-install version 40.4

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions