Skip to content

The context of connection errors are swallowedΒ #192

@will3216

Description

@will3216

At /lib/json_api_client/middleware/status.rb:14 Faraday connection errors are swallowed and manually re-raised as different errors. This converts error messages which would have originally looked like:

Faraday::ConnectionFailed: Connection refused - connect(2) for "fe80::1%lo0" port 8270
    from /Users/william/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv-replace.rb:23:in `initialize'
    from /Users/william/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv-replace.rb:23:in `initialize'
    from /Users/william/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/http.rb:879:in `open'
    from /Users/william/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/http.rb:879:in `block in connect'
    from /Users/william/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:76:in `timeout'
    from /Users/william/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/http.rb:878:in `connect'
    from /Users/william/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/http.rb:863:in `do_start'
    from /Users/william/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/http.rb:852:in `start'
    from /Users/william/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/http.rb:1369:in `request'
    from /Users/william/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/http.rb:1128:in `get'
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/faraday-0.9.2/lib/faraday/adapter/net_http.rb:80:in `perform_request'
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/faraday-0.9.2/lib/faraday/adapter/net_http.rb:40:in `block in call'
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/faraday-0.9.2/lib/faraday/adapter/net_http.rb:87:in `with_net_http_connection'
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/faraday-0.9.2/lib/faraday/adapter/net_http.rb:32:in `call'
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/json_api_client-1.1.1/lib/json_api_client/middleware/parse_json.rb:6:in `call'
    from /Users/william/workspace/tout/tout-haystack/lib/tout/haystack/enricher.rb:11:in `call'

Which indicates that I have define my resource's site attribute using 127.0.01 instead of localhost; into something a lot less helpful:

JsonApiClient::Errors::ConnectionError: JsonApiClient::Errors::ConnectionError
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/json_api_client-1.1.1/lib/json_api_client/middleware/status.rb:15:in `rescue in call'
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/json_api_client-1.1.1/lib/json_api_client/middleware/status.rb:5:in `call'
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/json_api_client-1.1.1/lib/json_api_client/middleware/json_request.rb:7:in `call'
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/faraday_middleware-0.10.0/lib/faraday_middleware/request/encode_json.rb:23:in `call'
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/faraday-0.9.2/lib/faraday/rack_builder.rb:139:in `build_response'
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/faraday-0.9.2/lib/faraday/connection.rb:377:in `run_request'
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/faraday-0.9.2/lib/faraday/connection.rb:140:in `get'
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/json_api_client-1.1.1/lib/json_api_client/connection.rb:32:in `run'
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/json_api_client-1.1.1/lib/json_api_client/query/requestor.rb:63:in `request'
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/json_api_client-1.1.1/lib/json_api_client/query/requestor.rb:26:in `get'
    from /Users/william/.rvm/gems/ruby-2.1.5/gems/json_api_client-1.1.1/lib/json_api_client/query/builder.rb:95:in `find'

Might be worth changing this behavior. It's quite bothersome to have to monkey-patch the rescue out in order to figure out what's going on for even silly errors :P

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions