EnvironmentUcommerce 8.0.0 - and onwards
Question/Problem descriptionA lot of error messages in the log files with a nullreference spawning from ExhanceRateAPICurrencyExchangeRateService.

The reason for this error is the service used to look up the exchange rates had its service changed so you now require an API key.

The exchangerate api are only being used for converting between currencies for the dashboard in the backoffice to give an indication on turnover in case you are running multiple currencies on the webshop. So per say it is not mission critical. The conversion rate between different currencies already exists in the database so the error you experience is because the service tries to update those values in the database. This results in the error message shown below.
Steps to reproduceEvery time the app starts and the Initialize pipeline runs.
Error message"System.NullReferenceException: Object reference not set to an instance of an object. at Ucommerce.ExchangeRateAPICurrencyConversion.ExchangeRateAPICurrencyExchangeRateService.GetRateBetween(String sourceCurrencyCode, String targetCurrencyCode) at SCHeerenveen.Ucommerce.Pipeline.GetRateForAllCurrencyExchangeRatesTask.Execute(IPipelineArgs`2 subject) at Ucommerce.Pipelines.Pipeline`1.Execute(T subject)" - "Exception occoured while processing pipeline 'Ucommerce.Pipelines.GenericPipeline`1[[Ucommerce.Pipelines.IPipelineArgs`2[[Ucommerce.Pipelines.UpdateCurrencyExchangeRates.UpdateCurrencyExchangeRatesRequest, Ucommerce, Version=9.4.1.21068, Culture=neutral, PublicKeyToken=null],[Ucommerce.Pipelines.UpdateCurrencyExchangeRates.UpdateCurrencyExchangeRatesResult, Ucommerce, Version=9.4.1.21068, Culture=neutral, PublicKeyToken=null]], Ucommerce, Version=9.4.1.21068, Culture=neutral, PublicKeyToken=null]]'. See inner exception for details."
Resolutionnone at this time
Workaround

Add the following partial component in a configuration file under apps to remove it from the initialize pipeline.


        <partial-component id="Initialize">

            <parameters>

                <tasks>

                    <array>

                         <value remove="${Initialize.ExecuteUpdateCurrencyExchangeRatesPipelineTask.Async}"/>

                    </array>

                </tasks>

            </parameters>

        </partial-component>