Exit status zero means a command reported success. A nonzero status signals failure, though the meaning depends on the command. An AND list runs its next command after success; an OR list runs it after failure. This makes a recovery action conditional without a full script.
Don't use a later successful command to hide an earlier error when the caller needs to know the operation failed. The tasks here require an explicit recovery marker and a successful final status. Read the previous command's status with $? before another command replaces it. Some nonzero statuses describe an expected outcome: grep returns 1 when it finds no matches. A missing input is a different failure. Match the recovery action to the intended condition, and check the final status after the recovery command has run.