---
title: "Troubleshooting"
description: "Diagnose and fix common Investment Details Feed API problems, from authentication and invalid requests to missing results and delta loads."
url: "https://developer-beta.morningstar.com/investment-details-feed-api/troubleshooting"
image: "https://developer-beta.morningstar.com/_og/d/c_Ocean.takumi,title_~VHJvdWJsZXNob290aW5nIHwgSW52ZXN0bWVudCBEZXRhaWxzIEZlZWQgQVBJ,description_~RGlhZ25vc2UgYW5kIGZpeCBjb21tb24gSW52ZXN0bWVudCBEZXRhaWxzIEZlZWQgQVBJIHByb2JsZW1zLCBmcm9tIGF1dGhlbnRpY2F0aW9uIGFuZCBpbnZhbGlkIHJlcXVlc3RzIHRvIG1pc3NpbmcgcmVzdWx0cyBhbmQgZGVsdGEgbG9hZHMu,props_eyJ0aGVtZSI6eyJtb2RlIjoibGlnaHQiLCJjb2xvcnMiOnsicHJpbWFyeSI6IiMwMDAwMDAifX19,p_Ii9pbnZlc3RtZW50LWRldGFpbHMtZmVlZC1hcGkvdHJvdWJsZXNob290aW5nIg,s_XcTKABpwfNY19zDN.png"
---

-   [APIs](https://developer-beta.morningstar.com/apis)
-   [API Catalog](https://developer-beta.morningstar.com/api-catalog)
-   [API Assistant MCP Server](https://developer-beta.morningstar.com/api-assistant-mcp)
-   [Guides](https://developer-beta.morningstar.com/api-guides)
-   [Trial Access](https://developer-beta.morningstar.com/trial-access)

# Investment Details Feed API

Get detailed profile data for up to 250 investments in a single request, drawing on Morningstar's fundamental, reference, and historical data..

# Troubleshooting

[View Markdown](https://developer-beta.morningstar.com/investment-details-feed-api/troubleshooting.md)[Download Markdown](https://developer-beta.morningstar.com/investment-details-feed-api/troubleshooting.md)

Use this page to diagnose a failed request or results that don't contain what you expected. Each issue lists the likely causes and how to fix them. For the meaning of a specific error code, see [Error Messages](https://developer-beta.morningstar.com/investment-details-feed-api/error-messages).

## [Before You Start](#before-you-start)

Most problems can be traced to one of the following. Check them first.

-   The `Authorization` header contains `Bearer {token}`, with a token less than 60 minutes old.
-   Requests for investment details include the `Prefer: respond-async` header.
-   The body is valid JSON, with `investments` and `views`.
-   There are no more than 250 investments and 3 views, and views that must be submitted alone are alone.
-   Each `idType` matches its `id`, and an entry with no `idType` holds a Morningstar Performance ID.
-   Dates are in `yyyy-MM-dd` format, the range is no more than 60 months, and the view returns time series data.
-   Your package's guide has been checked for extra inputs. See [Package-Specific Guides](https://developer-beta.morningstar.com/investment-details-feed-api/package-specific-guides).

## [Reading an Error Response](#reading-an-error-response)

A failed request returns a `statusCode`, an `errorCode`, a `message` and a `requestId`. The `message` describes the problem.

```json
{
  "statusCode": 400,
  "errorCode": "400.investmentDetailsAsync.010",
  "message": "Invalid date format. Dates must be formatted as YYYY-MM-DD.",
  "requestId": "9d4a2e6f-1b8c-4d3a-b7e5-2c0f9a1d6b84"
}
```

A request can also succeed and still carry messages about investments or data points. Always check `metadata.messages` in the results. See [Retrieve Investment Details](https://developer-beta.morningstar.com/investment-details-feed-api/retrieve-results#check-metadata-and-warnings).

Use the `errorCode` to look up the issue on the [Error Messages](https://developer-beta.morningstar.com/investment-details-feed-api/error-messages) page. Keep the `requestId` in case you need to contact support.

## [Authentication and Access](#authentication-and-access)

401 Unauthorized

The token is missing, invalid or expired.

-   Check that the `Authorization` header is present and uses the format `Bearer {token}`.
-   Tokens expire after 60 minutes. Request a new token from `POST /token/oauth`, then retry the request.
-   In long-running jobs, refresh the token before it expires, and retry any request that returns `401` after refreshing.

See [Authentication](https://developer-beta.morningstar.com/api-authentication).

---

403 Forbidden

The request was authenticated but access was refused. Confirm that your account is licensed for the data you are requesting. Your Morningstar account manager can confirm what your agreement includes.

---

A View Isn't Available to Me

You can only request the views in the packages you are licensed for.

-   Call the list views endpoint to see the views you can request. See [Get View IDs](https://developer-beta.morningstar.com/investment-details-feed-api/get-view-ids).
-   Check the spelling of the `viewId`. View IDs are lowercase and hyphenated.
-   If you expect to have access, contact your Morningstar account manager.

---

500 Internal Server Error

An error occurred on the server. Check that the request body is valid JSON, then retry the request. If the error persists, contact Morningstar support with the `requestId` and the time of the request.

---

503 Service Unavailable

An upstream service is temporarily unavailable (`503.investmentDetailsAsync.040`). Wait, and then retry the request.

---

## [Request Errors](#request-errors)

The Prefer Header Is Missing

The response says `The Prefer header is required`.

-   Add the header `Prefer: respond-async` to requests for investment details.
-   Check that the value is exactly `respond-async`. Any other value is rejected.
-   If a utility endpoint, such as delta dates or the list of views, returns an error about the header, remove it from that request.

---

A Required Parameter Is Missing

The response says `The {0} parameter is required`, and names the missing parameter.

-   Check that the body includes both `investments` and `views`.
-   Check that views with required parameters have them. For example, `equity-financials` needs `reportType` and `period`. See [Package-Specific Guides](https://developer-beta.morningstar.com/investment-details-feed-api/package-specific-guides).
-   Check the spelling and capitalization of the property names.

---

The ID Doesn't Match the ID Type

The response says `The input id does not match the specified idType`, or `The input idType is not recognized`.

-   Check that `idType` is one of `performanceId`, `isin`, `fundCode`, `securityId`, `cusip`, `msid`, `tradingSymbol` or `industryCode`, spelled exactly as shown.
-   Check that each `idType` describes the identifier in its `id`. An entry with no `idType` is treated as a Morningstar Performance ID.

---

Too Many Investments or Views

The response status is `413`.

-   `413.investmentDetailsAsync.007`: a request can include up to 250 investments. Split a larger universe across several requests.
-   `413.investmentDetailsAsync.008`: a request can include up to 3 views. Split the views across several requests.

See [Core Concepts](https://developer-beta.morningstar.com/investment-details-feed-api/core-concepts#request-limits).

---

A View Must Be Submitted Alone

The response says that views `must be submitted individually and cannot be combined with other views` (`400.investmentDetailsAsync.019`).

-   `full-look-through-portfolio-holdings` and `full-portfolio-holdings-month-end-or-quarter-end-most-recent` must each be the only view in the request. They can't be combined with each other either.
-   `equity-financials` must also be the only view in the request.
-   Make a separate request for each of these views.

See [Views](https://developer-beta.morningstar.com/investment-details-feed-api/views#limits).

---

Dates Are Rejected

Date errors have several causes.

-   **Format.** Dates must be `yyyy-MM-dd`, for example `2025-01-31` (`400.investmentDetailsAsync.011` or `.032`).
-   **Order.** `startDate` can't be later than `endDate` (`400.investmentDetailsAsync.010`).
-   **Range.** The range can be up to 60 months (`413.investmentDetailsAsync.009`).
-   **Views with no time series.** `startDate` and `endDate` aren't valid for a view that returns only the most recent data (`400.investmentDetailsAsync.035`). Remove the dates for that view.

---

A Parameter Value Isn't Recognized

The response says `The input {0} value is not recognized. Please input a valid value` (`400.investmentDetailsAsync.021` or `.031`).

-   Check the value against the accepted values for the parameter. See [API Inputs](https://developer-beta.morningstar.com/investment-details-feed-api/api-inputs) and the package-specific guide for the view.
-   Pass view parameters as arrays, for example `"period": ["a"]`.
-   Check that you aren't passing a parameter that belongs to a different view.

---

Holdings Inputs Are Rejected

For the portfolio holdings views, the accepted values depend on the view and the endpoint.

-   In a request for a portfolio holdings view, `holdingsView` is `Full`, `Top25` or `Top10`. For `full-look-through-portfolio-holdings`, the response says only `full` and `top25` are valid (`400.investmentDetailsAsync.028`).
-   For the portfolio holdings dates endpoint, `holdingsView` is `10`, `25` or `full`, and `type` is `mostRecent`, `timeSeries` or `staticDates`.
-   With `type` set to `timeSeries`, `frequency` is `d` or `m`, and `startDate` and `endDate` are required. With `staticDates`, the `dates` array can have up to 10 dates.

See [Full Look Through Portfolio Holdings](https://developer-beta.morningstar.com/investment-details-feed-api/full-look-through-portfolio-holdings).

---

Delta Times Are Rejected

The response says `Invalid delta date format` (`400.investmentDetailsAsync.033`), or that the `deltaStartTime` can't be later than the `deltaEndTime` (`400.investmentDetailsAsync.034`).

-   Write `deltaStartTime` and `deltaEndTime` in UTC, in the format `yyyy-MM-ddTHH:mm:ssZ`, for example `2025-02-07T19:06:55Z`.
-   Make sure `deltaStartTime` isn't later than `deltaEndTime`.

See [Retrieve Delta Dates](https://developer-beta.morningstar.com/investment-details-feed-api/retrieve-delta-dates).

---

The View Type Isn't Valid

The response says that the `viewType` isn't valid (`400.investmentDetailsAsync.049`).

-   Omit `viewType` to use the default, `package`.
-   If you set it, use one of the values that the response lists, spelled exactly as shown.

See [API Inputs](https://developer-beta.morningstar.com/investment-details-feed-api/api-inputs).

---

## [Unexpected Results](#unexpected-results)

I Can't Find My Results

The request was accepted, but you can't retrieve the results.

-   Check that you saved the `jobId` and the status link from the `202` response.
-   Check the status of the job with the link, and wait until it is complete before you retrieve the results.
-   Use the result ID that the job provides. A job ID isn't a result ID.
-   Check that your token is still valid. Request a new one if it has expired.

See [Retrieve Investment Details](https://developer-beta.morningstar.com/investment-details-feed-api/retrieve-results).

---

An Investment Is Missing From the Results

The request succeeded, but one of your investments has no data. Investments that couldn't be matched are reported in `metadata.messages`.

1.  Check `metadata.messages` for the identifier and its `idType`.
2.  Check the identifier for typos.
3.  Check that `idType` matches the identifier.
4.  Check whether lookup details, such as `domicile` or `exchangeCountry`, are excluding the investment.
5.  Try a different identifier for the same investment. The Morningstar Performance ID is the most precise.

See [Retrieve Investment Details](https://developer-beta.morningstar.com/investment-details-feed-api/retrieve-results#check-metadata-and-warnings).

---

Data Is Missing for a View

An investment was returned, but the data for a view is missing.

-   Check `metadata.messages` for data points that you aren't entitled to.
-   Check the view's parameters. A parameter that applies to a different view is ignored, and a missing required parameter fails the request.
-   Check the date range. A time series view returns only the data in the range.
-   Check the view definition to see whether the data point exists for the investment's type. See [Get View IDs](https://developer-beta.morningstar.com/investment-details-feed-api/get-view-ids).

---

Data Isn't in the Language I Expected

-   Set `languageId` to the language you want. The default is `ENG`.
-   Only language-dependent data points change with `languageId`. The view definition shows which ones depend on language.
-   Country-dependent data points use `countryId`, and the default is `USA`.

See [Get View IDs](https://developer-beta.morningstar.com/investment-details-feed-api/get-view-ids#get-a-view-definition).

---

Portfolio Holdings Are Not for the Date I Expected

If you don't pass `portfolioDate`, the most recent holdings data is returned.

-   Retrieve the dates that are available with the portfolio holdings dates endpoint, and pass one as `portfolioDate`.
-   Check `metadata.portfolioDate` in the results to see the date of the data.

See [Full Look Through Portfolio Holdings](https://developer-beta.morningstar.com/investment-details-feed-api/full-look-through-portfolio-holdings).

---

A Delta Load Returns Everything

If you don't pass `deltaStartTime`, the API returns the full load.

-   Add `deltaStartTime` to the request.
-   Check that the view is `equity-financials`, since delta loads currently apply to that view only.

See [Request Delta Load](https://developer-beta.morningstar.com/investment-details-feed-api/request-delta-load).

---

A Delta Load Returns Fewer Fields Than Expected

When `includeUnchangedData` is `false`, which is the default, each changed row contains only the fields that changed. Set `includeUnchangedData` to `true` to get each changed row complete, with all its fields.

See [Request Delta Load](https://developer-beta.morningstar.com/investment-details-feed-api/request-delta-load#step-2-choose-how-much-of-each-row-to-return).

---

The Response Payload Is Too Large

The response gives the error code `413.investmentDetailsAsync.005`. Split the request into smaller requests.

-   Request fewer investments in each request.
-   Request fewer views, or a view with fewer parameters.
-   Use a shorter date range for time series views.
-   Merge the results in your application.

## [Still Stuck?](#still-stuck)

-   Check the [Error Messages](https://developer-beta.morningstar.com/investment-details-feed-api/error-messages) page for the full list of error codes.
-   Browse the [FAQs](https://developer-beta.morningstar.com/investment-details-feed-api/faqs).
-   Check the [Package-Specific Guides](https://developer-beta.morningstar.com/investment-details-feed-api/package-specific-guides) if your package has extra inputs.
-   If you contact support, include the `requestId` from the response.