Mix alias don't return with error if I order tasks differently

We have this mix alias that we use in our CI:

build: [
  "format --check-formatted",
  "deps.unlock --check-unused",
  "compile --force --warnings-as-errors",
  "validate_translations",
  "test"
],

This returns with an error if "compile --force --warnings-as-errors" fail.
Strangely however if I move that line below validate_translations or test it doesn’t return an error and the CI passes even if there are compiler warnings.

I’m surprised by this behavior and would like to know why the order matters.

The test task does compilation so if you haven’t specified it with --warnings-as-errors then the following compile is a no-op since everything is already compiled.

…or, that would be true if you didn’t also put --force in the compile task in which case I don’t know.