PROBLEM

The FeatureSet function returns unexpected results in ArcGIS Field Maps on iOS devices

Last Published: August 8, 2025

Description

When configuring a smart form in Field Maps Designer using the FeatureSetByPortalItem and FeatureSetByName functions to dynamically populate fields based on spatial intersection with a reference layer, the expression runs successfully. However, when the form is used in ArcGIS Field Maps on iOS devices, the expression fails to return the expected results.

Cause

This is a known limitation when smart forms configured with the FeatureSetByPortalItem function in Field Maps Designer are used in ArcGIS Field Maps on iOS devices. This behavior is specific to iOS and does not affect Android devices. Refer to BUG-000177300 for more information.

Solution or Workaround

To resolve the issue, configure the smart form using the FeatureSetByName() function instead of FeatureSetByPortalItem() in Field Maps Designer.

  1. Open the form builder in Field Maps Designer.
  2. Create and configure a new form.
    1. In the Forms pane, select the preferred feature layer to be used for data collection. In this example, the polygon feature layer is selected.
    2. In the Form builder pane, under the Form elements list, double-click or drag and drop Text – Single line onto the blank form canvas.
    3. In the Properties pane, specify Display name and Field name. In this example, 'Test1' is specified for the Field name and Display name.
    4. Click Save to map.
  3. Add logic to the form to calculate and populate data using the calculated expressions. Refer to ArcGIS Field Maps: Add calculated expressions for instructions. In Step 5, copy and paste the following expression into the Arcade editor window and replace the necessary variables of the feature layer.
// Template: Pull attribute from intersecting feature via layer name 
var layerName = "<ReferenceLayer>"; // Name of the reference layer 
var fieldName = "<FieldName>";   // Attribute you want to return
var refFS = FeatureSetByName( $map, layerName, [fieldName], true ); if (IsEmpty(refFS) || IsEmpty($feature)) { return "OUT"; } var hits = Intersects(refFS, $feature); for (var f in hits) { return f[fieldName]; } return "OUT";

The image below shows the example of the calculated expression using the FeatureSetByName() function with 'Geology' as the reference layer in the 'Arcade editor' window.

The Arcade editor window.
Note:
The FeatureSetByName() function requires the reference layer to be added to the same web map used in ArcGIS Field Maps.
  1. Open the ArcGIS Field Maps on iOS devices and fill out the form for data collection. Refer to ArcGIS Field Maps: Fill out forms for more information.

The image below shows the 'Test1' field correctly populated in ArcGIS Field Maps on iOS devices when the features are within the reference layer.

The 'Test1' field correctly populated in the ArcGIS Field Maps mobile app (iOS)
 

Article ID: 000037035

Software:
  • ArcGIS Field Maps Android
  • ArcGIS Field Maps iOS
  • ArcGIS Field Maps Designer

Receive notifications and find solutions for new or common issues

Get summarized answers and video solutions from our new AI chatbot.

Download the Esri Support App

Get help from ArcGIS experts

Contact technical support

Download the Esri Support App

Go to download options