I have an application that sends messages to users. In a POST request, an XML string is transferred that consists of all the users that should receive that particular message. If any of the users in the list do not exist I give the list of missing users back to the client for further evaluation.
Now I'm asking myself what would be the proper status code for the application saying that the request was accepted but there were things that couldn't be done.
The problem would be avoided if it weren't allowed to include missing users in the list. Then the sending attempt would just get an 4xx error. But there is no point in forming the API this way. On the other hand, I could consider the error condition to be purely application-specific. But sending a 200 just does not feel right. And it would be nice to give the client a hint when to look deeply into the error response. e.g. to avoid sending messages to users over and over.