Summary
The ArcGIS Field Maps application may appear to crash when operating on an iOS device. Although a crash is possible, the sudden closure is more likely a jetsam event, which is similar in appearance to a crash, but has different implications for the end user.
Cause
Jetsam events are not application crashes. iOS manages resources by notifying applications to release memory under high memory pressure situations, such as when the system demands exceed the available memory. When an application fails to relinquish adequate memory, the operating system terminates it and generates a log — a process referred to as a jetsam event.
When a jetsam event occurs while the application being jettisoned is open, it appears as though the application has crashed. The difference between a jetsam event and an application crash is the reason for the application closure. During an application crash, the software running the application ceases to function normally, resulting in the application closing or freezing. During a jetsam event, the application never fails to function properly, but is terminated by the operating system.
Procedure
To calculate application memory usage at the time of a jetsam event, perform the following operation:
- On your iOS device, after the ArcGIS Field Maps application has terminated, navigate to Settings > Privacy & Security > Analytics & Improvements > Analytics Data, and download the most recent .ips log.
- The logs are named 'JetsamEvent-YYYY-MM-DD-(6-digit ID number).ips'. For example, JetsamEvent-2026-05-27-123456.ips
Note:
If there is no jetsam event log, the ArcGIS Field Maps application may have actually crashed. Contact Esri Support Services in the event of this condition.
- Upload the .ips log to your desktop and open the log in a text editor such as Notepad.
- Search for the pageSize parameter and take note of the number recorded next to it.
Example:
"pageSize" : 16384,
- Search for Field Maps to navigate to the record of the ArcGIS Field Maps application in the jetsam event log.
Example:
"name" : "Field Maps"
- Search for the reason parameter in the Field Maps process and note the reason for the event.
Example:
"reason" : "per-process-limit",
Note:
There may be multiple "reason" parameters spread among processes throughout the jetsam log, but for troubleshooting ArcGIS Field Maps, we are only interested in the "reason" parameter outlined in the Field Maps process. Some common reasons and their explanations are listed in the Apple documentation on Jetsam logs here: Identifying high-memory use with jetsam event reports, and are described below.
-
- per-process-limit: The process crossed the resident memory limit imposed by the system on all apps. Crossing this limit makes the process eligible for termination. If the process is an app extension from your app, note that extensions have a much lower per-process memory limit than foreground apps.
- vm-pageshortage: The system experienced memory pressure and needed to free background process memory for the current foreground app.
- vnode-limit: Too many files were open across the system. The kernel has a finite number of vnodes, a memory structure backing open files, and these were almost exhausted. To avoid terminating the frontmost app when vnodes are nearly exhausted, the system may terminate your app in the background to free vnodes, even if your app isn’t the source of excess vnode use.
- highwater: A system daemon exceeded its highest-expected memory footprint.
- fc-thrashing: A process thrashed the system file cache. This occurs when non-sequential parts of memory-mapped files are read and written too frequently. To avoid terminating the frontmost app, the system may terminate your app in the background to free space in the file cache, even if your app isn’t thrashing the file cache.
- jettisoned: The system jettisoned the process for some other reason.
- Search for the rpages parameter at the end of the jetsam log and take note of the number recorded next to it.
Example:
"rpages" : 183488,
- Calculate the application's memory usage at the time of the Jetsam event by multiplying the pageSize parameter by the rpages parameter. This returns the size of the application's memory usage in bytes.
- Bytes can be converted to larger storage sizes using the conversion chart below. Use the following formula to convert between Bytes to Gigabytes: GB = B/(1024^3).
| Data Unit | Size |
| Bit | Single Binary Digit (1 or 0) |
| Byte | 8 bits |
| Kilobyte (KB) | 1,024 Bytes |
| Megabyte (MB) | 1,024 Kilobytes |
| Gigabyte (GB) | 1,024 Megabytes |
| Terabyte (TB) | 1,024 Gigabytes |
| Petabyte (PB) | 1,024 Terabytes |
| Exabyte (EB) | 1,024 Petabytes |
- Using the examples in Steps 3 and 6 above, the pageSize value is 16384 and the rpages value is 183488. The product of these numbers is 3006267392, which when applied to the formula (3006267392/(1024^3)) = 2.8. This means that the ArcGIS Field Maps application was using 2.8GB of memory at the time of the jetsam event described above. The stated reason is "per-process-limit", which suggests that the resident memory limit was crossed. Taken together, this information indicates that the ArcGIS Field Maps application in the example was consuming 2.8GB of RAM when it was jettisoned during a jetsam event, and was jettisoned for crossing the maximum RAM threshold imposed on all applications on the device by the operating system.