While I was installing
GnuCash 2.6.7 on a Windows 10 computer, I encountered a "
System Error" while retrieving the price quotes. To be exact, when I opened the "
Price Editor" from GnuCash, and attempted to "
Get Quotes", GnuCash popped up a dialogue window with the error message "
There was a system error while retrieving the price quotes"
By resolving this problem, I have the following observations,
- GnuCash may still fail to retrieve price quotes even if GnuCash's
gnc-fq-check program reports no problem. - GnuCash's
gnc-fq-update program is designed to install the Finance::Quote Perl module; however, it may not install all dependencies that the GnuCash's Price Editor functionality requires. - GnuCash's
gnc-fq-helper program can provide additional diagnostic information, such as, missing dependent Perl modules.
Below is a detailed description on what happened and how the problem was resolved.
- To install the
Finance::Quote Perl module, we run GnuCash's gnc-fq-update program as the System Administrator, e.g.,
C:\Program Files (x86)\gnucash\bin>perl gnc-fq-update
- To verify that the
Finance:Quote Perl module is successfully installed and we can retrieve price quotes online, we run GnuCash's gnc-fq-check, e.g.,
C:\Program Files (x86)\gnucash\bin>perl gnc-fq-check
("1.38" "tdefunds" "adig" "bet" "sixshares" "nz" "unionfunds" "romania" "cominvest" "dwsfunds" "asegr" "tiaacref" "seb_funds" "cse" "nasdaq" "goldmoney" "bamosz" "tsp" "yahoo_json" "hungary" "fidelityfixed" "bourso" "yahoo_nz" "usfedbonds" "yahoo_europe" "ftportfolios_direct" "platinum" "hustock" "bse" "bsero" "ukfunds" "aex" "vanguard" "dutch" "tdwaterhouse" "yahoo_brasil" "maninv" "trustnet" "uk_unit_trusts" "yahoo_australia" "morningstarjp" "brasil" "known_currencies" "canadamutual" "deka" "finanzpartner" "fool" "bmonesbittburns" "ftfunds" "yahoo_yql" "finland" "europe" "za_unittrusts" "nzx" "morningstar" "fidelity_direct" "asx" "za" "troweprice_direct" "greece" "lerevenu" "hu" "tsx" "sixfunds" "fetch_live_currencies" "troweprice" "indiamutual" "hufund" "yahoo" "australia" "asia" "usa" "aiahk" "stockhousecanada_fund" "fidelity" "ftportfolios" "vwd" "france" "mstaruk" "canada" "financecanada" "fundlibrary" "tnetuk" "nyse" "yahoo_asia" "citywire" "hex" "amfiindia")
Since
gnc-fq-check does not complain that there might be a problem, we would assume that the GnuCash's
Price Eiditor functionality should work. In particular,
the GnuCash's Online Quotes wiki page does not appear to suggest anything else may have to be performed. However, I encountered the error that "
There was a system error while retrieving the price quotes".
Following
the GnuCash's Tracefile wiki page, I initially attempted to observe what may have been wrong by examining GnuCash trace files. However, the trace files did not appear to reveal anything useful to me. Finally, a web search yielded
a clue that we might be able to find out more using GnuCash's gnc-fq-helper program. Below is what I found out by attempting to retrieve the ticket
CSCO's price quote from
Yahoo,
C:\Program Files (x86)\gnucash\bin>echo (yahoo "CSCO") | perl gnc-fq-helper
Can't locate Date/Manip.pm in @INC (you may need to install the Date::Manip module) (@INC contains: C:/Strawberry/perl/site/lib C:/Strawberry/perl/vendor/lib C:/Strawberry/perl/lib .) at gnc-fq-helper line 33.
BEGIN failed--compilation aborted at gnc-fq-helper line 33.
that clearly indicated that the
Date::Manip Perl module was missing. Then the fix is to install the Perl module, e.g., invoking Perl shell as the
System Administrator as follows,
C:\Program Files (x86)\gnucash\bin>perl -MCPAN -e shell
cpan> install Date::Manip
Now let us run the
gnc-fq-helper and attempt to retrieve the ticket
CSCO's price quote from
Yahoo again. The
gnc-fq-helper stopped complaining and successfully retrieved the price quote.
C:\Program Files (x86)\gnucash\bin>echo (yahoo "CSCO") | perl gnc-fq-helper
WARNING: the TZ Date::Manip config variable is deprecated
and will be removed in March 2016. Please use
the SetDate or ForceDate config variables instead.
(("CSCO" (symbol . "CSCO") (gnc:time-no-zone . "2015-09-09 16:00:00") (last . 25.94) (currency . "USD")))
This experience is actually another time that the
gnc-fq-helper program saves the day. In the past,
I encountered a similar problem, but with a different error message.