anchor.diff:              erlang:throw({not_found, uuid_mismatch})
       end,
   
  -    VBOpaque = proplists:get_value(<<"vbopaque">>, Obj),
  -
  -    CommitOpaque = proplists:get_value(<<"commitopaque">>, Obj),
  +    {Obj, Bucket}.
  +
  +extract_ck_params(Req) ->
  +    {Body, Bucket} = extract_base_ck_params(Req),
  +
  +    VB = proplists:get_value(<<"vb">>, Body),
  +    case VB =:= undefined of
  +        true ->
  +            erlang:throw(bad_request);
  +        _ -> true
  +    end,
  +
  +    VBOpaque = proplists:get_value(<<"vbopaque">>, Body),
  +
  +    CommitOpaque = proplists:get_value(<<"commitopaque">>, Body),
   
       {Bucket, VB, VBOpaque, CommitOpaque}.
   
  
positive.code:             Other
      end.
  
  extract_ck_params(Req) ->
      couch_httpd:validate_ctype(Req, "application/json"),
      {Obj} = couch_httpd:json_body_obj(Req),
      Bucket =
  
negative.code:             _ ->
                  undefined
          end,
      case Opaques =:= undefined of
          true ->
              erlang:throw(bad_request);
          _ -> true
      end,
  
      Keys0 = [{iolist_to_binary(io_lib:format("vb_~B:uuid", [Vb])), Vb, VO}
  