summaryrefslogtreecommitdiff
path: root/src/couchdb/couch_rep_writer.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/couchdb/couch_rep_writer.erl')
-rw-r--r--src/couchdb/couch_rep_writer.erl10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/couchdb/couch_rep_writer.erl b/src/couchdb/couch_rep_writer.erl
index d88c3ee2..ffe9768f 100644
--- a/src/couchdb/couch_rep_writer.erl
+++ b/src/couchdb/couch_rep_writer.erl
@@ -46,12 +46,18 @@ writer_loop(Parent, Reader, Target) ->
write_docs(#http_db{} = Db, Docs) ->
JsonDocs = [couch_doc:to_json_obj(Doc, [revs,attachments]) || Doc <- Docs],
- ErrorsJson = couch_rep_httpc:request(Db#http_db{
+ Request = Db#http_db{
resource = "_bulk_docs",
method = post,
body = {[{new_edits, false}, {docs, JsonDocs}]},
headers = [{"x-couch-full-commit", "false"} | Db#http_db.headers]
- }),
+ },
+ ErrorsJson = case couch_rep_httpc:request(Request) of
+ {FailProps} ->
+ exit({target_error, proplists:get_value(<<"error">>, FailProps)});
+ List when is_list(List) ->
+ List
+ end,
ErrorsList =
lists:map(
fun({Props}) ->