build/mvn uses a -z `zinc -status` test to determine whether a zinc process is running.
However, zinc -status checks port 3030 by default.
This means that if a $ZINC_PORT env var is set to some value besides 3030, and an existing zinc process is running on port 3030, build/mvn will skip starting a zinc process, thinking that a suitable one is running.
Subsequent compilations will look for a zinc at port $ZINC_PORT and not find one.
The zinc -status call should get the flag -port "$ZINC_PORT" added to it.