ERROR Errno::ECONNRESET: Connection reset by peer @ io_fillbuf

I am getting problems with a json request.

When i do a index search with GET, i have an error ERROR Errno::ECONNRESET: Connection reset by peer @ io_fillbuf. Below is a full log of the problem.

I have been trying to google the io_fillbuf but i can’t seem to find any clear answers to what it is.

In my ApplicationController i have “skip_before_action :verify_authenticity_token” as I am just using rails api for a pure json app.

Started GET “/api/v1/images.json?type=index&more=yes&offset=80” for 169.254.249.61 at 2014-08-21 10:30:15 Processing by Api::V1::ImagesController#index as JSON

Parameters: {“type”=>“index”, “more”=>“yes”, “offset”=>“80”} index

params type index
images length 20
Completed 200 OK in 97ms (Views: 0.1ms | ActiveRecord: 0.0ms)
[2014-08-21 10:30:15] ERROR Errno::ECONNRESET: Connection reset by peer @ io_fillbuf - fd:19

/Users/user/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:80:in eof?' /Users/user/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:80:in run’ /Users/user/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread’

[2014-08-21 10:30:15] ERROR Errno::ECONNRESET: Connection reset by peer @ io_fillbuf - fd:15 /Users/user/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:80:in eof?' /Users/user/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:80:in run’ /Users/user/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread’

[2014-08-21 10:30:15] ERROR Errno::ECONNRESET: Connection reset by peer @ io_fillbuf - fd:18 /Users/user/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:80:in eof?' /Users/user/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:80:in run’ /Users/user/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread’

[2014-08-21 10:30:15] ERROR Errno::ECONNRESET: Connection reset by peer @ io_fillbuf - fd:15 /Users/user/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:80:in eof?' /Users/user/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:80:in run’ /Users/user/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread’

[2014-08-21 10:30:15] ERROR Errno::ECONNRESET: Connection reset by peer @ io_fillbuf - fd:18 /Users/user/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:80:in eof?' /Users/user/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:80:in run’ /Users/user/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread’

Is it ok if you type the url into a browser? If so then it may be to
do with the client app

Colin

This means your app is trying to make an external call to another web server (redis? the database? another external service?) during the web request.

This is typically a network-layer problem, on Heroku I saw these happen relatively frequently. When I asked Heroku about it (I actually met with a support engineer in person to get an answer about this), they said this was basically one of the costs of doing business on the Amazon grid.

Essentially, AWS has these little “gremlins” in the cloud – sometimes your requests to external services (like other services on the cloud) simply fail or do not respond. This appears to affect all AWS applications (I believe it is a network-layer problem)

If this problem is consistent (that is, it happens every time you hit the URL), then ignore what I said above. If you are on another provider (not Amazon), I would first figure out what external service your app is trying to connect to and then follow up with them to see why the external service isn’t performing consistently.