Dfx start --background leads to thread 'main' panicked at 'Error creating persistent pool error

I am on a Mac. I previously ran dfx start --background without any issues. However, now when I run dfx start --background, I am getting this error:

Running dfx start for version 0.15.1
Using the default definition for the 'local' shared network because /Users/princesseth/.config/dfx/networks.json does not exist.
  Version v0.15.1 installed successfully.
thread 'main' panicked at 'Error creating persistent pool at: "/Users/princesseth/Library/Application Support/org.dfinity.dfx/network/local/state/replicated_state/node-100/ic_consensus_pool/consensus". Error: IO error: While lock file: /Users/princesseth/Library/Application Support/org.dfinity.dfx/network/local/state/replicated_state/node-100/ic_consensus_pool/consensus/LOCK: Resource temporarily unavailable', rs/artifact_pool/src/rocksdb_pool.rs:222:25

I tried to dfx cache delete and dfx stop to no avail. What could be the issue?

Nevermind, I was able to fix this by running dfx start --clean --background. I have to run this command quite often. What are reasons in which you need to clear the project cache so often?