Which version of the ArcGIS API for JavaScript should I use now? 3.21 or 4.4?

See the Choose a version topic for more information.

I have an app built with the 3.x version of the ArcGIS API for JavaScript and I want to take advantage of some of the features in version 4. What is the best process to migrate to 4.x?

There have been significant changes to the object model in order to enable higher productivity and effectiveness. Due to these major changes in the API, the cleanest approach is to re-write apps from scratch when building with the 4.x API. For more information, see Migrating from 3.x to 4.4.

Does the 4.4 have all of the features of 3.x?

We are working hard to build a full-featured API that will not only meet but exceed 3.x capabilities. See capabilities for more information, or review the 4.4 API reference.

How do I know what is comparable from 3.x to 4.x?

See the 3x to 4x functionality matrix topic for more information.

Were there breaking changes between beta releases and the 4.0 production version?

There are some breaking changes between beta versions and the 4.0 production release of the API. However, Esri will continue to host beta versions of the API after the final release so any apps built on beta versions will maintain access to the version of the API they were built against.

I upgraded my app from beta 3 to 4.0, but I just see a blank page with no errors. Why don't I see my map?

Prior to the final release of 4.0, the size of the view's container was automatically generated. Therefore it was not necessary to specify the view's height or width in CSS. However, as of the 4.0 release you are required to specify the width and height of the view's container with CSS. For example, the following CSS was acceptable in 4.0beta3.

html, body {
  padding: 0;
  margin: 0;

In the 4.0 release, the MapView or SceneView will not be ready unless it has a specified height and width in CSS. See the following code as an example.

html, body,
#viewDiv {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;

See the Get started with MapView sample to view this code in context.

Why don't I see error messages in the console when working with promises?

When working with methods and classes that return promises, error messages can be captured and logged to the console using the otherwise() method. However, if you would like the app to automatically log these errors, you can paste the following code inside a script tag at the top of your app prior to loading the API.

dojoConfig: {
  has: {
    // 1: enables a better debugging support while having an impact on the performance of the app
    "config-deferredInstrumentation": 1

Note that this comes at a performance cost; therefore, it is best used during the development cycle and not for production apps.

How do I access features from my feature layer with mouse clicks?

Use either the MapView.hitTest or SceneView.hitTest methods to search for graphics that intersect the specified screen coordinates. See the Access features with click events for a sample on how this works.

What is the planned release schedule for future 4.x releases?

Version 4.5 is currently planned for Fall 2017.

What is the best way to come up to speed on building 3D web apps?

See the Best practices for 3d scene services Developer Summit talk that discusses some things to take into consideration when working with 3d scenes.

How long will Esri continue to release (i.e. maintain) the 3.x version of the API? How long will there be tech support?

Esri will actively develop and release the 3.x API until at least mid-2018. As the 4.x API matures and achieves equivalency with the 3.x API, new development efforts will only occur in 4.x. See the Product Life Cycle document for more information regarding 3.x releases and the support plan going forward. The 3.x versions of the API will be hosted on Esri's CDN for the foreseeable future, therefore apps that are built on 3.x versions of the API will continue to work beyond the support period.

Will new features continue to be added to the 3.x release?

We are still actively working on building new capabilities and enhancements into the 3.x API. Some of the new features planned for future 3.x milestones are:

  • New strategies for working with big data. For example, developers will be able to visualize data using various aggregation techniques such as clustering and binning.
  • Continually growing suite of renderers for creating smarter maps
  • FeatureTable enhancements
  • VectorTileLayer improvements
  • OGC improvements
  • Increased ArcGIS platform integration
  • Easier to work with time periods like "last week" or "by weekday"

Which versions of ArcGIS does 4.x work with?

The ArcGIS API for JavaScript 4.x works with supported versions of ArcGIS Server - see Product Life Cycle document. Note that for example, ArcGIS 10.0 was retired on Jan 1, 2016. Non-supported version might still work to some extent, but are not being tested (or supported) with the API.

Am I allowed to modify the ArcGIS API for JavaScript?

No. The code for the ArcGIS API for JavaScript cannot be modified.