bblimke/webmock · error · ArgumentError
both arg and block given for HTTP method
Error message
both arg and block given for HTTP method
What it means
Error "both arg and block given for HTTP method" thrown in bblimke/webmock.
Source
Thrown at lib/webmock/http_lib_adapters/net_http_response.rb:24
# is called with a destination string or block.
#
# This causes a problem when VCR records a response--it reads the body before yielding
# the response, and if the code that is consuming the HTTP requests uses #read_body, it
# can cause an error.
#
# This is a bit of a hack, but it allows a Net::HTTP response to be "re-read"
# after it has aleady been read. This attemps to preserve the behavior of
# #read_body, acting just as if it had never been read.
module Net
module WebMockHTTPResponse
def read_body(dest = nil, &block)
if !(defined?(@__read_body_previously_called).nil?) && @__read_body_previously_called
return super
end
return @body if dest.nil? && block.nil?
raise ArgumentError.new("both arg and block given for HTTP method") if dest && block
return nil if @body.nil?
dest ||= ::Net::ReadAdapter.new(block)
dest << @body.dup
@body = dest
ensure
# allow subsequent calls to #read_body to proceed as normal, without our hack...
@__read_body_previously_called = true
end
end
end
View on GitHub (pinned to b187df8827)
When it happens
Trigger: Thrown at lib/webmock/http_lib_adapters/net_http_response.rb:24 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of bblimke/webmock@b187df8827 (2026-08-23).
Data as JSON: /api/errors/6fb478ee75f4a4fa.
Report an issue: GitHub.