Update-to-tag runs all changesets if tag not found

I’m testing the liquibase update-to-tag functionality. If I fat-finger the tag ID, it seems like the safe way for Liquibase to behave is to not make any changes. Instead, for me, it just runs all changesets and gives me the warning below. This seems unsafe:

$ liquibase updateToTag oops
...
WARNING:  The tag 'oops' was not found in the changelog 'changelog.yml'. All changesets in the changelog were deployed.
...

Is there an option to fail / not make any updates at all if a tag is not found?

Related, the tag-exists command will tell you if a tag exists or not, but does not produce a non-zero return value if the tag does not exist. For example, if tag 1.0.0 exists but 1.0.1 does not I still get a 0 return value:

$ liquibase tag-exists 1.0.0
Liquibase Open Source 4.25.0 by Liquibase
The tag '1.0.0' already exists in 'postgres@jdbc:postgresql://localhost:5432/postgres'.
Liquibase command 'tag-exists' was executed successfully.

$ echo $?
0

Example with a non-existing tag (1.0.1):

$ liquibase tag-exists 1.0.1
Liquibase Open Source 4.25.0 by Liquibase
The tag '1.0.1' does NOT exist in 'postgres@jdbc:postgresql://localhost:5432/postgres'.
Liquibase command 'tag-exists' was executed successfully.

$ echo $?
0

To easily add the Liquibase tag configuration to an automated build, it would be great for this command to return a non-zero result if the tag did not exist. Is there a way to do that? Or do we need to parse the Liquibase output from the tag-exists command to put it into an automated build workflow?

What version of Liquibase are you running?

I’m using Liquibase 4.25.0.