When we emit a non-200 error, we should make sure the body has some sort of info that makes it clear that the python code itself has emitted the error (as opposed to zeus or nginx.). We do this for 400 and (I think) 503, but we should do it for 404, 412 and possibly others as well.
What sort of information do you have in mind, and where will we be checking for this information? Is it for after-the-fact debugging from user error logs? It would be less ambiguous to flag this in a header, e.g. "X-Response-Originated-From: syncstorage" or something. But that would be less likely to show up in error logs.
sync-1.5 sends json with integer error codes for app-generated errors, I think we can close this out