anchor.diff:  param_error({type, Value}, Name) ->
       param_error_(Name, #{error => wrong_type, data => Value});
   param_error({body, Value}, Name) ->
  -    param_error_(Name, #{error => invalid_body, data => Value}).
  +    param_error_(Name, #{error => invalid_body, data => Value});
  +param_error({body_too_big, Value}, Name) ->
  +    param_error_(Name, #{error => body_too_big, data => Value}).
   
   param_error_(Name, Info) ->
       {error, {validation_error, to_binary(Name), Info}}.
  
positive.code:               error:_ ->
                  {error, Reason} = param_error({body, Body}, <<>>),
                  {error, Reason, Req}
              end
      end;
  get_param_value("query", Name, Req) ->
      QS = cowboy_req:parse_qs(Req),
  
negative.code:     end.
  
  get_param_value("body", _, Req0) ->
      %% Cowboy will attempt to read up to ~5MB of data for up to 10s. The call
      %% will return when there is up to ~5MB of data or at the end of the 10s
      %% period. If there is more data to read (after reading the initial 5MB),
      %% {more, Body, Req} is returned and we can consider the request body to
      %% be too big and the request is invalid.
      case cowboy_req:read_body(Req0, #{length => 5000000, period => 10000}) of
          {ok, <<>>, Req} -> {ok, <<>>, Req};
          {ok, Body, Req} ->
              try
  