Hey all! I’m still stuck investigating this issue. Here’s what I’ve determinedso far using Charles Proxy. On the initial run the (pull?) replicatorinspects the changes feed via GET /{db}/_changes and sees something like the following:
{
"seq": 4186,
"id": "some-weird-id",
"removed": [
"another-doc-id"
],
"changes": [
{
"rev": "2993-b5bcdf0462fc00e2719ffe7bb1a751d0"
},
{
"rev": "7875-8288a642182a313b56cb8c62bffe1e1a"
}
]
}
It then sends a _bulk_get?revs=true&attachment=true POST request with this included in the body (along w/ a bunch of other docs):
{
"atts_since": null,
"rev": "2993-b5bcdf0462fc00e2719ffe7bb1a751d0",
"id": "some-weird-id"
}, {
"atts_since": null,
"rev": "7875-8288a642182a313b56cb8c62bffe1e1a",
"id": "some-weird-id"
}
It receives a response which does not contain any info on “some-weird-id”. Everything else in my app appears to function as normal. I stop and restart it and the client sends a _revs_diff POST request with this in the body (along with several other items):
"some-weird-id": ["2993-b5bcdf0462fc00e2719ffe7bb1a751d0", "7875-8288a642182a313b56cb8c62bffe1e1a"],
The sync gateway server responds with:
{
"some-weird-id": {
"missing": ["2993-b5bcdf0462fc00e2719ffe7bb1a751d0"]
}
}
Finally there are a couple more revs_diff requests and changes feed request, none which include the document in question. The client push replicator then sends a massive _bulk_docs POST request which looks like this:
{
"docs": [{
"_rev": "2993-b5bcdf0462fc00e2719ffe7bb1a751d0",
"_revisions": {
"start": 2993,
"ids": ["b5bcdf0462fc00e2719ffe7bb1a751d0", "16b8070854a560d762548ad4f04e3024", "8cbe27ead30f613632e323e3fc15f22b",
//several more ids which I removed for brevity
"5917b3607ed4d51669624080d5cfd1f8"]
},
"_deleted": true,
"_id": "some-weird-id"
}],
"new_edits": false
}
This fails with a 404 leaving me puzzled. The client does not delete anything locally and this all seems to be server-side driven. Can anyone shed light on this behavior?