Issue #15873 has been updated by nobu (Nobuyoshi Nakada). Status changed from Open to Closed Probably you are using `frozen-string-literal` pragma. Since 2.6, OpenURI clears the buffer from `Net::HTTPResponse#read_body` to reduce memory usage. See [Feature #14320]. ---------------------------------------- Bug #15873: FrozenError when using OpenURI.open https://bugs.ruby-lang.org/issues/15873#change-78198 * Author: AlexGascon (Alex Gascon) * Status: Closed * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux] * Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN ---------------------------------------- I just updated from Ruby 2.5.1 to 2.6.3 and I encountered a strange problem on a part that was working fine previously. It's on a Rails application, and on one of the tests I'm stubbing (using [webmock](https://github.com/bblimke/webmock)) an HTTP request that we perform to an external URL. However, when trying to access the information by using OpenURI I get a `FrozenError`. The following block represents a minimal reproducible example of the problem that I'm experiencing ``` ruby stub_request(:get, "https://files.lol/certificate_doc.pdf").to_return(status: 200, body: "Random information", headers: {}) file_content = open("https://files.lol/certificate_doc.pdf") FrozenError: can't modify frozen String from /home/alex/.rbenv/versions/2.6.3/lib/ruby/2.6.0/open-uri.rb:357:in `clear' ``` -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>