Since you can start it using a different port, this means that something is really using this port. This may be another application or a previously inhibited activation / playback start.
To find out what uses it, you can use, for example, lsof on Linux:
$ lsof -i :9000
Once you find its pid, you can stop this process.
If this port is used by another service, and you really need it, instead of always providing the port to the run command, you can try adding this to your sbtopts (either in the ~/.sbtopts file or SBT_OPTS env var) this:
-Dhttp.port=9876
Salem source share