When given an non-empty (but valid) JSON content, some methods such as _ensure_full_commit will abruptly drop a persistent connection instead of waiting for a new HTTP request even though no error is signaled in CouchDB logs:
[connection is closed without warning by CouchDB at this point]
To remedy that, one could try to give an empty content, but some frameworks (such as spray.io) will systematically omit the Content-Type header in this case since it makes little sense to type empty content. However, CouchDB will reject the request even though it does not want any content:
This makes it impossible to use those methods with such frameworks. CouchDB should not drop the connection and ignore the data if Content-Length is not 0, nor require that data be typed with application/json if it is going to ignore it anyway or if it requires it to be empty.