paypal ipn returns nil

while testing IPN validations with the PayPal gem,

I keep getting a nil object message for notify.acknowledge

even though notify is not empty

notify =

=> #<Paypal::Notification:0x398d9d0 @raw="receiver_id=D31B7IUDQITUL&business=paypal%40yourdo…etc etc

NoMethodError: You have a nil object when you didn’t expect it!

The error occured while evaluating nil.verify_mode
from d:/ruby/lib/ruby/1.8/net/http.rb:565:in connect' from d:/ruby/lib/ruby/1.8/net/http.rb:555:in do_start’
from d:/ruby/lib/ruby/1.8/net/http.rb:544:in `start’

    from d:/ruby/lib/ruby/1.8/net/http.rb:1031:in `request'
    from ./script/../config/../config/../vendor/plugins/paypal/lib/notification.rb:209:in `acknowledge'
    from (irb):107

has anyone seen this before?



Hello Dion,

while testing IPN validations with the PayPal gem,


        from (irb):107
        from :0

Did you look at line 209 of notification ? That should give you a clue.

Check Paypal::Notification.ipn_url is not nil before calling too.

Hope that helps !

hi there

I set ipn.url in my controller to the test script I am using

notify.ipn_url = ‘

how can I test line 204 http = Net::, uri.port) from the console

as I suspect it is http that is nil


while evaluating this from the console, http returns false, which is why I must be getting nil

@notify.ipn_url = '

=> “

uri = URI.parse(@notify.ipn_url)
=> #<URI::HTTP:0x1c53c50 URL:>

http =, uri.port)
=> #<Net::HTTP

That only says that the connection is not open. Not that it's false.
You need to initiate the request. Continue testing in the console /
irb to see where it leads you.

Sorry I can't be more specific. You're on the right track though.

Also, nothing prevents you from editing notification.rb and adding
logging statements. I often do:

RAILS_DEFAULT_LOGGER.debug "some logging statement"

in the libraries. Since the library's running under Rails, it
automatically gets access to the same logger the rest of Rails is

Bye !