Context: We are downloading basemaps using the ‘GenerateOfflineMapJob’ class from the flutter SDK. Later, while offline, we are loading the maps by setting the loaded map to the mapViewController.arcGISMap setter. It works great with most of the basemaps.
Problem: When trying to load the downloaded Outdoor base map (https://www.arcgis.com/home/item.html?id=2e8a3ccdfd6d42a995b79812b3b0ebc6), it completes download successfully with all package files in the valid state. However, on loading the map, it fails with an exception thrown. The exception is: “ArcGISException: code=18; Internal error.; Not all sources were loaded”. On the error documentation page, it is stated that it is an ArcGIS internal error https://developers.arcgis.com/net/reference/platform-error-codes/.
Once again, the exception is thrown on this one specific (mentioned) basemap. Other basemaps we are downloading and loading are loaded with no problem. Loading the basemap directly, online, is working great.
Can this map be used offline? What is the reason of the SDK failing to load the resources of the map?
The Outdoor basemap uses a Multisource vector tile style. (this blog describes what they are). As you have discovered Multisource vector tiles are not useable offline. The offline tooling does not take them offline correctly and even if it did, there is no implementation in the Maps SDK to draw them. I responded to a similar inquiry last year https://community.esri.com/t5/arcgis-field-maps-questions/field-maps-multi-source-basemaps-support/m...
As I stated in the referenced post we have not heard significant requests from the Esri community with regard to prioritizing the work to implement an offline solution for multisource vector tile styles.
Esri raster basemaps and Esri vector basemaps are automatically enabled for offline use.However, the Outdoor Esri vector basemap is an exception. This particular basemap cannot be taken offline because it contains a multisource style, which is not supported for offline use at this time.
For more information on taking maps offline, you can refer to the official documentation: Taking Maps Offline.