Troubleshooting valuation errors

Error 321: Market Resolver Failure

For example:

{"name":"MarketResolverFailure","errorDetails":
  [{"id":"Failed to resolve market data item 
    [Provider: Edi, PriceSource: , InstrumentId: BBG000C05BD1, InstrumentIdType: Figi, QuoteType: Price, Field: mid].",
    "detail":"Attempted to resolve with supplier [Edi] and sourceSystem [Lusid] in scope [recipe1] for effective date 
    [07/03/2022 00:00:00], quoteInterval [None] and with predicate [AsAt=Latest], but failed because failed to 
    find quote in store."}]"
}

Cause: LUSID cannot locate suitable, timely market data.

Solution:

  • The first step is to examine the market data rules in your recipe. Field values in a market data rule must exactly match equivalent field values in market data objects according to the rules in this table.

  • If field values match, make sure you can retrieve market data from the appropriate store manually, for example by using the ListQuotesForScope API to search for a quote with that instrument identifier on or before that date. 

  • If you can, try setting the allowPartiallySuccessfulEvaluation pricing model option to True to relax validation and call the API again, though of course missing market data will not be used in calculations.

Aggregation errors

These are not API errors so do not have an error code. You may see them in the response to an otherwise successful GetValuation API call. For example:

"Aggregation/Errors": [
  "Cannot add 189.0 to 2 because metadata Dim:0,Units:(CCY_GBP) != Dim:0,Units:(LUID_00003DK5).",
  "Cannot add 189.0 to 1 because metadata Dim:0,Units:(CCY_GBP) != Dim:0,Units:(LUID_00003DK6).",
  "Cannot add 189.0 to 1 because metadata Dim:0,Units:(CCY_GBP) != Dim:0,Units:(LUID_00003DK7)."
]

Cause: LUSID cannot perform the chosen mathematical operation on a metric you want to aggregate. In this example, LUSID cannot Sum units of a currency with units of equities.

Solution: Follow the guidance in this article for examples of metrics and operations it makes sense to perform.