Skip to content
This repository has been archived by the owner on Mar 1, 2021. It is now read-only.

Occasional OpenURI::HTTPError: 404 Not Found starting ~3/9/2018 #65

Closed
xinranxiao opened this issue Mar 12, 2018 · 43 comments
Closed

Occasional OpenURI::HTTPError: 404 Not Found starting ~3/9/2018 #65

xinranxiao opened this issue Mar 12, 2018 · 43 comments

Comments

@xinranxiao
Copy link

Has anyone else been getting occasional OpenURI::HTTPError: 404 Not Found errors when trying to fetch rates?

open-uri.rb" line 363 in open_http
open-uri.rb" line 741 in buffer_open
open-uri.rb" line 212 in block in open_loop
open-uri.rb" line 210 in catch
open-uri.rb" line 210 in open_loop
open-uri.rb" line 151 in open_uri
open-uri.rb" line 721 in open
open-uri.rb" line 729 in read
gems/google_currency-3.4.0/lib/money/bank/google_currency.rb" line 133 in fetch_rate

Ruby: 2.4.3
Example URL that it tries to hit: http://finance.google.com/finance/converter?a=1&from=USD&to=EUR

I can't seem to deterministically reproduce this... has anyone else been running into this recently?

@jirihradil
Copy link

The same for me. Started yesterday (3/12/2018) and occurs occasionally for different currencies converted to USD (AUD, MAD, KES). When repeating, it's OK. Guess something to do with the Google's endpoint?

@jirihradil
Copy link

Full stack:

Monetize.from_string(BigDecimal.new('100'), 'KWD').as_us_dollar.to_s

OpenURI::HTTPError: 404 Not Found
	from /home/ec2-user/.rvm/rubies/ruby-2.2.5/lib/ruby/2.2.0/open-uri.rb:358:in `open_http'
	from /home/ec2-user/.rvm/rubies/ruby-2.2.5/lib/ruby/2.2.0/open-uri.rb:736:in `buffer_open'
	from /home/ec2-user/.rvm/rubies/ruby-2.2.5/lib/ruby/2.2.0/open-uri.rb:211:in `block in open_loop'
	from /home/ec2-user/.rvm/rubies/ruby-2.2.5/lib/ruby/2.2.0/open-uri.rb:209:in `catch'
	from /home/ec2-user/.rvm/rubies/ruby-2.2.5/lib/ruby/2.2.0/open-uri.rb:209:in `open_loop'
	from /home/ec2-user/.rvm/rubies/ruby-2.2.5/lib/ruby/2.2.0/open-uri.rb:150:in `open_uri'
	from /home/ec2-user/.rvm/rubies/ruby-2.2.5/lib/ruby/2.2.0/open-uri.rb:716:in `open'
	from /home/ec2-user/.rvm/rubies/ruby-2.2.5/lib/ruby/2.2.0/open-uri.rb:724:in `read'
	from /home/ec2-user/.rvm/gems/ruby-2.2.5/bundler/gems/google_currency-fa6e8ba366c0/lib/money/bank/google_currency.rb:133:in `fetch_rate'
	from /home/ec2-user/.rvm/gems/ruby-2.2.5/bundler/gems/google_currency-fa6e8ba366c0/lib/money/bank/google_currency.rb:103:in `get_rate'
	from /home/ec2-user/.rvm/gems/ruby-2.2.5/gems/money-6.10.1/lib/money/bank/variable_exchange.rb:110:in `exchange_with'
	from /home/ec2-user/.rvm/gems/ruby-2.2.5/gems/money-6.10.1/lib/money/money.rb:436:in `exchange_to'
	from /home/ec2-user/.rvm/gems/ruby-2.2.5/gems/money-6.10.1/lib/money/money.rb:449:in `as_us_dollar'
	from (irb):8
	from /home/ec2-user/.rvm/gems/ruby-2.2.5/gems/railties-5.0.4/lib/rails/commands/console.rb:65:in `start'
	from /home/ec2-user/.rvm/gems/ruby-2.2.5/gems/railties-5.0.4/lib/rails/commands/console_helper.rb:9:in `start'
	from /home/ec2-user/.rvm/gems/ruby-2.2.5/gems/railties-5.0.4/lib/rails/commands/commands_tasks.rb:78:in `console'
	from /home/ec2-user/.rvm/gems/ruby-2.2.5/gems/railties-5.0.4/lib/rails/commands/commands_tasks.rb:49:in `run_command!'
	from /home/ec2-user/.rvm/gems/ruby-2.2.5/gems/railties-5.0.4/lib/rails/commands.rb:18:in `<top (required)>'
	from bin/rails:9:in `require'
	from bin/rails:9:in `<main>'

@adrianwantsa
Copy link

+1

@jirihradil
Copy link

I did a prefetch of all currencies as a workaround in Ruby. If it throws 404, I repeat it as long as it fails. Also changed ttl to 30 days:

Money::Bank::GoogleCurrency.ttl_in_seconds = 2592000 # 30 days
GOOGLE_UNSUPPORTED_CURRENCIES = ["BYR", "GGP", "IMP", "IRR", "JEP", "PRB", "MNK", "RMB", "TVD", "SSP", "STD", "VEF", "VND", "ZMK", "ZWD"];

ISO4217::Currency.currencies.keys.sort.each {|c| p c; next if GOOGLE_UNSUPPORTED_CURRENCIES.include?(c); p Monetize.from_string(BigDecimal.new('100'), c).as_us_dollar.to_s; sleep 1; }

@jirihradil
Copy link

Errors are increasing. Is the endpoint going to die? Guess that's not very probable that Google has unstable finance converter for couple of days.

@jirihradil
Copy link

jirihradil commented Mar 14, 2018

Error rate is still increasing. Moved to https://github.com/spk/money-open-exchange-rates which uses a different endpoint. Works flawlessly.

@adrianwantsa
Copy link

I haven't seen the error for 24 hours. But also have https://github.com/spk/money-open-exchange-rates ready to go, if need be.

@dmcwilliams
Copy link

I have seen several errors this morning so I've begun looking into https://github.com/spk/money-open-exchange-rates

@antstorm
Copy link
Contributor

Yeah, it looks like Google is winding down their exchange rates page. I'm getting occasional redirects to "Finance" section of google search.

@jirihradil
Copy link

jirihradil commented Mar 15, 2018

Just FYI - using https://github.com/spk/money-open-exchange-rates for 2 days instead of this gem and can say it's a good successor.
Good speed to you, google_currency, served us well for 7 years, thank you and thanks all the contributors!

@Paludis
Copy link

Paludis commented Mar 16, 2018

Having the same issue, will check out https://github.com/spk/money-open-exchange-rates

@lukaVarga
Copy link

It looks like it is constantly redirecting to the google search page now..

@edlebert
Copy link

I just created another gem that uses openexchangerates.org: https://github.com/edlebert/money-oxr

@antstorm
Copy link
Contributor

@edlebert just curious why did you decide to build another gem instead of improving the existing one?

@edlebert
Copy link

edlebert commented Mar 19, 2018

@antstorm Other than getting the rates from the same source, the gems are pretty different. First and foremost I need a useful and reliable bank, so the easiest option was just to create another option.

@Paludis
Copy link

Paludis commented Mar 20, 2018

@edlebert thank you, looks great!

@sbleon
Copy link

sbleon commented Mar 20, 2018

https://github.com/edlebert/money-oxr is working well for me to. Thanks, @edlebert !

It seems like money-oxr will do conversions from any currency to any currency, even on the https://openexchangerates.org free plan. I had thought I was going to have to sign up for a paid account or write my own "convert X to Y via USD" routine, but the gem is pretty-much a drop-in replacement for google_currency, with just a touch of configuration required.

@antstorm
Copy link
Contributor

@edlebert makes sense, but I'd advice to focus the effort rather than diluting it if possible

@edlebert
Copy link

@antstorm I understand, but in some cases, the author isn't willing to take their project in the direction you want, which is the case here. Thanks again for this awesome gem, and I hope we can all continue to enjoy free and easy currency-exchanges for years to come :)

@spk
Copy link
Member

spk commented Mar 23, 2018

Hello, if you where talking about money-open-exchange-rates @edlebert, I don't see any pull requests or issues where I was not willing to accept improvement or direction changes, cheers

@edlebert
Copy link

@spk I don't mean any disrespect. I never said you were unwilling to accept improvement. You're very friendly and willing to accept PRs, etc. Several of the Issues in money-open-exchange-rates have expressed confusion surrounding caching/TTL/auto-refresh. Your response has always been for users to set up cron or heroku scheduler tasks to manage auto-refresh and re-writing the cache (I'm not linking them all here). That's a totally valid design decision, and it's one you're obviously comfortable with keeping. For myself, I wanted something similar to google_currency.

Also, no offense to anyone, but I'm not going to respond to any more "why" questions here about money-oxr here. Feel free to open an issue or PR, or contact me directly (can you even do that on github?)

@spk
Copy link
Member

spk commented Mar 24, 2018

Thanks for your reply @edlebert, I did not feel any disrespect but I just wanted to said that I'm not against change and I'm always glad to have feedback on projects, the issues are here spk/money-open-exchange-rates#37 and spk/money-open-exchange-rates#38; cheers

@ThinkAndRun
Copy link
Contributor

I've added PR to fix it: #71

@antstorm
Copy link
Contributor

antstorm commented Mar 26, 2018

Just pushed a new version with updated URL — 3.4.1. Would appreciate if people who still use it could update it and tell me if it works consistently.

Also thanks to @ThinkAndRun for submitting the fix.

@Onikoroshi
Copy link

@antstorm : Is there a fix for those of us using your money-rails gem ( https://github.com/antstorm/money-rails )? I ran bundle update money-rails and am still getting the Money::Bank::GoogleCurrencyFetchError: Money::Bank::GoogleCurrencyFetchError error. :/

@antstorm
Copy link
Contributor

@Onikoroshi you should bundle update google_currency instead, since it's not a dependency of money-rails or money. It should be a separate entry in your Gemfile.

@Onikoroshi
Copy link

@antstorm : Aha, that was it! Thank you so much for taking time to answer, even though it was a bit off-topic. I really appreciate it!

@antstorm
Copy link
Contributor

@Onikoroshi no problem, glad that it works now

@apuente93
Copy link

This is still causing issues OpenURI::HTTPError: 404 Not Found

@kissrobber
Copy link

I got 404 errors today and 5days ago

@antstorm
Copy link
Contributor

antstorm commented Jun 3, 2018

@apuente93 @kissrobber This is caused by network conditions, instability of google's API (looks like it's not really supported). If you are still using this gem I'd suggest putting some retry logic around the call.

@bretweinraub
Copy link

@wikiti
Copy link

wikiti commented Jun 4, 2018

Looks like the current path (/bctzjpnsun/converter) is throwing 404 errors:

https://finance.google.com/bctzjpnsun/converter?a=1&from=USD&to=EUR

@bretweinraub
Copy link

I threw in the towel on Google Finance and have hacked together something simple using fixer.io.

@CarlosIgnacioGo
Copy link

OpenURI::HTTPError: 404 Not Found

@apuente93
Copy link

Thanks for the reply. I suggest moving to https://github.com/spk/money-open-exchange-rates. Works like a charm without this error.

@antstorm
Copy link
Contributor

antstorm commented Jun 6, 2018

Have a look at https://github.com/RubyMoney/money#implementations for a list of alternatives as the Google converter is getting really unstable

@antprt
Copy link

antprt commented Jun 11, 2018

Is mainteined the gem?

From the last 15 days I have the same error: OpenURI::HTTPError: 404 Not Found

@antstorm
Copy link
Contributor

@antprt I suggest you getting yourself familiar with the thread before posting nonsense

johnboyes pushed a commit to johnboyes/hotcustard-payments that referenced this issue Jul 18, 2018
The google currency api is no longer supported by Google -
see RubyMoney/google_currency#65
Fix is to use https://github.com/edlebert/money-oxr instead.
johnboyes pushed a commit to johnboyes/hotcustard-payments that referenced this issue Jul 18, 2018
Fix Australian payers google currency bug

The google currency api is no longer supported by Google -
see RubyMoney/google_currency#65
Fix is to use https://github.com/edlebert/money-oxr instead.
@absyah
Copy link

absyah commented Aug 28, 2018

Today status: OpenURI::HTTPError: 404 Not Found

@antstorm
Copy link
Contributor

@absyah thanks for reporting.

I've updated the README with a warning of this issue — https://github.com/RubyMoney/google_currency#warning

@ravindra9278
Copy link

Still Getting 404 Error

> bank = Money::Bank::GoogleCurrency.new
> bank.get_rate(:GBP, :USD).to_f

> Traceback (most recent call last):
        1: from (irb):15
OpenURI::HTTPError (404 Not Found)

@joshuapinter
Copy link

Just wanted to add to here. We ended up replacing google_currency with eu_central_bank and it was very easy and worked great. It's part of RubyMoney so it should be well maintained. Basic replacement looks like this:

eu_central_bank = EuCentralBank.new

eu_central_bank.update_rates # TODO: Make this use a cache in a shared directory and just update it every day.

Money.default_bank = eu_central_bank

Definitely a good option to consider.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests