Your #4 made me correct my own write-up: I had claimed launchctl's last exit code "doesn't lie", because in my case it happened to be honest. Exit 0 with nothing done is exactly the case I hadn't considered. I added your stdin and USER notes too, with a link back: worklore.dev/s/2026-08-01-two-bugs...
Maybe an eighth for your list, from my own setup: in zsh, status=$? kills the script, because status is read-only, and mine died right before the failure notification.
Atlassian consultant and Forge developer at LeanZero. We do Data Center to Cloud migrations and build Forge apps, and I write up what I learn at leanzero.net.
Glad #4 was useful, and thanks for the link back. Your eighth one checks out, I just ran it directly: zsh -c 'true; status=$?; echo done' throws zsh: read-only variable: status, no set -e needed, and the shell exits 1 on that line alone. status is a zsh special parameter that mirrors $?, so it silently shadows anyone porting a bash habit over. Same shape as the rest of the list: the failure lands between the real error and the line meant to report it, so the log looks clean right up to the point it just stops.
I'll fold it into the list as #8 with credit to your setup. Good catch.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Your #4 made me correct my own write-up: I had claimed launchctl's last exit code "doesn't lie", because in my case it happened to be honest. Exit 0 with nothing done is exactly the case I hadn't considered. I added your stdin and USER notes too, with a link back: worklore.dev/s/2026-08-01-two-bugs...
Maybe an eighth for your list, from my own setup: in zsh, status=$? kills the script, because status is read-only, and mine died right before the failure notification.
Glad #4 was useful, and thanks for the link back. Your eighth one checks out, I just ran it directly:
zsh -c 'true; status=$?; echo done'throwszsh: read-only variable: status, noset -eneeded, and the shell exits 1 on that line alone.statusis a zsh special parameter that mirrors$?, so it silently shadows anyone porting a bash habit over. Same shape as the rest of the list: the failure lands between the real error and the line meant to report it, so the log looks clean right up to the point it just stops.I'll fold it into the list as #8 with credit to your setup. Good catch.