title: What HTTP status code should server return if client request can't be fulfilled at the moment because of some business logic?
body: <p>I have a chat application that works in browsers and uses REST API backend. It has following business logic rules:</p>
  
  <ol>
  <li><p>a user can start chat session with any other users</p></li>
  <li><p>a user can be in one and only one chat session at the time</p></li>
  <li><p>if <code>userA</code> and <code>userB</code> have started a chat session and the session is
  currently active, then if <code>userC</code> tries to start chat session with
  either <code>userA</code> or <code>userB</code> server should prevent that and return some
  kind of error to <code>userC</code></p></li>
  </ol>
  
  <p>My question is what would be appropriate HTTP status code for this error that <code>userC</code> should receive?</p>
  
  <p>This is not fault of the client so 4xx codes don't seem appropriate.</p>
  
  <p>This is not server error so 5xx codes also don't seem appropriate.</p>
  
  <p>I will send response body with additional JSON info message of why request failed but what would be appropriate HTTP status code that would satisfy RESTful principles?</p>