> For the complete documentation index, see [llms.txt](https://docs.jigx.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.jigx.com/changelog/release-notes-2026.md).

# Release Notes - 2026

## Release 2026.10

<figure><img src="https://3291832364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpFHfEsbWtmK7QZTXJNb%2Fuploads%2F0WfZhWJ7wh6JiA2Wj8O5%2FRelease%202026.10.png?alt=media&amp;token=fd1fa722-314b-4996-b719-d7561ccbf206" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="169.2421875">Release 2026.10</th><th>17 September 2026</th></tr></thead><tbody><tr><td>iOS version</td><td>3.5.0</td></tr><tr><td>Android version</td><td>3.5.0</td></tr><tr><td>Jigx Builder</td><td>1.53.0</td></tr></tbody></table>

### Mobile Apps

#### Bug fixes

* Improved file upload and download reliability in poor network conditions.
  * *Resumable file downloads*: File downloads in dynamic components (such as attachments and documents) now download in segments. If a connection drops, the download automatically resumes from where it left off without starting over.
  * *Resumable file uploads:* Uploads to Cloudflare-backed services now use the TUS protocol in 512 KB chunks. Intermittent network failures will no longer require re-uploading the entire file from the beginning.
  * *Offline and restart survival*: Unfinished file transfers persist across app restarts and background sync retries.
* *Offline file and attachment syncing*: Fixed an issue where saving or downloading files, images, or signatures offline, or during network timeouts, resulted in a "File upload failed" error message. These requests now silently re-queue and automatically complete once you're back online.
* Resolves an issue where the app got stuck on the "Preparing your data…" screen during a cold start under slow or flaky connectivity.
  * Visible Changes include:
    * A cold start on a completely offline device now waits up to 3 seconds at the "Waiting for connection…" screen before opening the app.
    * The "Waiting for connection…" screen now renders using the default light theme, matching the appearance of the "Preparing your data…" screen.
* *Performance & Stability*: Fixed an issue where the app became progressively slower throughout the day on Android devices during extended use.
* Resolved an issue where app startup or foreground resume could hang or fail if background local command queue processing was slow or encountered an error.
* *Data Sync*: Fixed an issue where entity sync scopes could remain stuck in a "syncing" state after all background sync operations were successfully completed.
* *Android Push Notification Performance & Reliability Improvements:*
  * *Faster Push Notifications:* Android push notifications received while the app is closed now appear instantly, without waiting for background JavaScript initialization.

### Builder

#### New Features & Enhancements

* *Command Queue Batching* (`batchId`)
  * Added the optional `batchId` property to [`execute-entity`](https://docs.jigx.com/examples/readme/actions/execute-entity) and [execute-entities](https://docs.jigx.com/examples/readme/actions/execute-entities) actions.
  * Allows developers to group related [offline write commands](https://docs.jigx.com/building-apps-with-jigx/data/offline-remote-data-handling) so that failures in one command pause execution for the rest of the batch, avoiding partial write states.
* *Execution Control* (`processingType`)
  * Added the optional `processingType` property with options:
    * `sync` *(default)*: Blocks the queue and runs sequentially (existing behavior).
    * `parallel`: Concurrently executes commands alongside adjacent parallel commands up to the next synchronous barrier.
    * `async`: Fire-and-forget execution; does not block subsequent commands in its batch.
* *Enhanced Queue Management* (`retry-queue-command` & `delete-queue-command`)
  * Batch targeting: Actions now accept a `batchId` parameter (in addition to `id`), allowing full batches of commands to be retried or deleted in a single action.
  * Force option: Added a `force` flag (defaults to `false`). When set to `true`, it allows retrying or deleting commands that are currently in-flight (`starting` or `processing`), aiding recovery from stalled provider calls.

#### Behavioral & Breaking Changes

* Strict `queueOperation` Validation: Invalid `queueOperation` values in `execute-entity` or `execute-entities` now throw an explicit error instead of silently falling back to `add`.
* Unregistered Data Provider Handling: Commands queued for an unregistered or unknown data provider are now marked as `failed` (terminal state) rather than continuing to retry indefinitely in a tight loop.

#### Bug fixes

* *REST Data Provider*: Fixed an issue where mobile REST functions using Basic Auth credentials failed with `Configuration not found for token name` error. Mobile REST calls with `basicAuth` parameters now correctly resolve static and dynamic credentials for both local (`useLocalCall: true`) and remote execution.

## Release 2026.9

<figure><img src="https://3291832364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpFHfEsbWtmK7QZTXJNb%2Fuploads%2F1RjuS5LyNNT3CR99FDoV%2FRelease%202026.9.png?alt=media&amp;token=edc4c896-9713-41d7-9b25-42ffd4c58950" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="169.2421875">Release 2026.9</th><th>3 September 2026</th></tr></thead><tbody><tr><td>iOS version</td><td>3.3.1</td></tr><tr><td>Android version</td><td>3.3.1</td></tr><tr><td>Jigx Builder</td><td>1.51.0</td></tr></tbody></table>

### Mobile Apps

#### Bug fixes

* Fixed the bottom navigation bar covering the primary action button on Android devices.
* Amount control values now snap to the configured step -  `component.amount-control` now keeps its value on the grid defined by `minimum` and `step`, on both input paths, a typed value snaps to the nearest valid step, and the +/- buttons move between valid steps instead of preserving an off-step offset. This applies everywhere `amount-control` is embedded (`list-item`, `product-item`), needs no configuration change, and doesn't affect existing solutions using the default `step: 1`.
* Fixed the offline banner getting permanently stuck after backgrounding the app, sped up offline detection on resume, and made manual retry work in one tap.&#x20;
* Number fields now accept locale decimal separators - EU users on comma-decimal locales (e.g. Czech, German) couldn't enter decimals, the `decimal-pad` keyboard offers `,`, but the field's string-to-number conversion only recognized `.`. Number fields now accept the device/app locale's separator (`12,5` in EU, `12.5` in US).

### Builder

#### Bug fixes

* Error handlers now fire when a REST function is skipped or blocked - REST function definitions can now rely on their `error` handlers to react when the function doesn't run at all, either because its `when` condition evaluated to falsy, or because a guard function resolved falsy. Previously, both cases exited before any error handling ran, so there was no way to surface a notification or alert when a call was silently skipped or blocked, the function just did nothing, with no feedback to the user. A matching `error` handler now fires exactly as it would for a failed REST call, so you can tell the user why an action didn't go through instead of leaving it unexplained. *Behavior change* - if a function has a catch-all `error` handler (one without its own `when` condition), it will now also fire when the function is skipped by `when` or blocked by a guard, not only on an actual REST failure. Review any catch-all error handlers on your REST functions to make sure that's the behavior you want.

## Release 2026.8

<figure><img src="https://3291832364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpFHfEsbWtmK7QZTXJNb%2Fuploads%2FW2QEQVB99TtVhTGfAnIv%2FRelease%202026.8.png?alt=media&amp;token=5497912f-5164-48ae-a266-1fe82dfe3344" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="169.2421875">Release 2026.8</th><th>24 August 2026</th></tr></thead><tbody><tr><td>iOS version</td><td>3.2.0</td></tr><tr><td>Android version</td><td>3.2.0</td></tr><tr><td>Jigx Builder</td><td>1.50.0</td></tr></tbody></table>

### <i class="fa-rocket-launch">:rocket-launch:</i> Announcement : JigxForms is live!

**What  is JigxForms?** \
Create AI-powered forms to capture data in the field and sync it to other systems.

<a href="https://forms.jigx.com/forms?auth=signup&#x26;utm_source=documentation" class="button primary" data-icon="rocket-launch">Try it for free today - Signup now for JigxForms!  </a>

### Mobile Apps

#### **New Features & Improvements**

* **Local time by default for date/time text** -Text rendered through `TextWithFormat` (`format.dateFormat`) now displays in the device's local timezone by default, instead of UTC. Previously, a stored value of `12:00Z` would show as `12:00` on a device set to UTC+2, instead of the correct local time of `14:00`. This resolves a long-standing display bug and removes the need for builders to work around it with JSONata expressions such as `$fromMillis(..., @ctx.system.timezone.offset)` , a workaround that applies *today's* UTC offset to any date, so it was off by an hour whenever the displayed date fell in the opposite DST season from today.
* [**New `timezone` property**](https://docs.jigx.com/examples/readme/components/common-component-properties#text-or-label) - `format.dateFormat` now accepts an optional `timezone` property for when you want to display a date/time in a specific zone rather than the device's local one. The property accepts an IANA timezone name (e.g. `Europe/Prague`) or the literal value `local`. Because it's resolved from the named zone rather than a fixed offset, the correct DST offset is applied per date, a July timestamp shown with `timezone: Europe/Prague` renders in summer time even when viewed from a device that's currently in winter time. If `timezone` is omitted or set to an invalid value, the field falls back to device-local time silently, without throwing an error.

#### Bug fixes

* Improved apps loading time on iPhone.
* Fixed an issue where the app was stuck "Syncing" forever, If an app waited on a batch of data that came back empty, the sync never finished and the app sat there loading. Usually this occurred on the first sign-in, before anything had downloaded.

  *The fix:* An empty batch now reports itself as done, so the sync completes and the app carries on.

### Builder

#### Improvements

* **`disableNetworkRetries` property for REST functions** - REST function definitions can now set `disableNetworkRetries: true` to opt out of the platform's automatic network-level retry. When set, a fetch that fails at the connection level surfaces to the function immediately instead of being silently retried underneath it. Previously, a connection failure (logged as `Failed to reach endpoint (retry exceeded)` from `data-provider-controller`) was automatically retried up to 3 times by the platform's `fetchWithRetry` behavior, with no visibility or control at the function level. For idempotent calls this is harmless, but for non-idempotent calls — a POST or PUT that creates a record — it's unsafe: if an earlier attempt actually reached the remote service and was processed, but the response was lost on the way back, the function only sees "network failed" and the platform quietly retries, with no key or reference tying the retry to the original attempt. Each retry can then create a duplicate record server-side. Note: This property is opt-in and off by default, so existing REST functions keep the current automatic-retry behavior unless you explicitly set `disableNetworkRetries: true`. Set it on any REST function that performs a non-idempotent write (record creation, payment processing, and similar) where a duplicated retry would create duplicate data. This property helps prevent duplicate records being created on a bad connections.

#### Bug fixes

* Fix REST functions sending unconverted values (e.g. raw file paths instead of base64) when combining `conversions` with an `inputTransform`.

## Release 2026.7

<figure><img src="https://3291832364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpFHfEsbWtmK7QZTXJNb%2Fuploads%2FlC7RNMJGs7lBGTmeEx4C%2FRelease%202026.7.png?alt=media&amp;token=a5d34a28-4d77-408e-8b5d-15f23300b627" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="169.2421875">Release 2026.7</th><th>11 August 2026</th></tr></thead><tbody><tr><td>iOS version</td><td>3.0.0</td></tr><tr><td>Android version</td><td>3.0.0</td></tr><tr><td>Jigx Builder</td><td>1.48.0</td></tr></tbody></table>

### <i class="fa-rocket-launch">:rocket-launch:</i> Announcement : JigxForms is live!

**What  is JigxForms?** \
Create AI-powered forms to capture data in the field and sync it to other systems.

<a href="https://forms.jigx.com/forms?auth=signup&#x26;utm_source=documentation" class="button primary" data-icon="rocket-launch">Try it for free today - Signup now for JigxForms!  </a>

### Mobile Apps

#### **New Features & Improvements**

* Fix generated PDFs rendering with the wrong solution's layout when multiple solutions are loaded on one device.
* New package deep links  `…/solution/{id}/package/{pkg}/jig/{jigId}`  ensures that tapping back returns users to the wrapper's list.
* &#x20;Add support for opening package jigs from push notifications.
* Added a delay of the offline banner until the device is offline for 4 seconds, preventing false-negative flashes on brief connectivity drops.

#### **Bug Fixes**

* Fix queued file uploads (photos, generated PDFs) failing with ENOENT after an iOS app upgrade by healing stale app-container paths at upload time.
* Fix jigs failing to render when a published configuration is missing its `children` list.
* Auth-protected files now open correctly via open-url on Android devices.&#x20;
* Fixed an issue where primary action buttons (such as Complete, Stop time log, Add to appointment, and Preview PDF) could intermittently fail to appear on Android, even though the action panel was active. Restarting the app was previously the only way to recover; this now resolves reliably without needing to relaunch.
* Prevented unexpected logout during session refresh. Fixed an issue where a brief network interruption during session refresh could incorrectly log users out. The app now stays logged in when this kind of temporary connection issue occurs.
* Fix secondary credential connect form showing a free-text field instead of the tenant dropdown when connection details fail to load. The form now retries loading instead of storing a credential with an unverified tenant.
* Open deeplink and notification targets immediately while their solution syncs, with a skeleton placeholder instead of a false *Solution is not available* error.
* Reduce generated PDF file size on iOS by up to 5× for image-heavy documents.

### Components and jig types

#### New features & improvements

* The [amount-control](https://docs.jigx.com/examples/readme/components/amount-control) component now supports a  `isManualEditingEnabled` property, which re-enables direct keyboard input for typing a value rather than relying solely on the plus/minus buttons. While focused, the field holds your input as a draft string, and the value is only committed to the configured `min`/`max` range once you blur or submit.&#x20;

#### **Bug Fixes**

* Fixed an Android issue for the `amount-control` where submitting and then blurring the field could cause the value to be committed twice.
* Fixed an issue where `dropdown` items with a title, subtitle, and description could have their description text appear outside the bottom sheet. The description now measures and wraps correctly, and multi-select footer buttons display side by side instead of stacking.
* Fixed an issue where a stray tab bar could appear in the footer of the `dropdown` bottom sheet.
* `Media-picker` keyboard overlap - Fixed an issue where opening the media picker while a text field was focused could leave the on-screen keyboard visible over the picker sheet on Android, and cause the keyboard to unexpectedly reappear after closing the sheet.

### Builder

#### New features & improvements

* Added a new `@ctx.solution.version` expression exposing the published version number of the current solution.

#### **Bug Fixes**

* Fix expression failures when splitting a string by a backslash literal more than once in one expression.

### Jigx Management

#### New features & improvements

* Added support for cookie-based authentication alongside existing OAuth/SSO flows.
* Caching optimization and performance enhancements.
* Added a Cloudflare sync setting to Solutio&#x6E;*→*&#x53;ettings so a solution can be enabled to sync to the Cloudflare platform. Added a new Cloudflare tab in *Solution → Settings* with a *Sync to Cloudflare* toggle. Saves on toggle, and visibility/editability is gated by member, org-owner, and support roles.

## Release 2026.6

<figure><img src="https://3291832364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpFHfEsbWtmK7QZTXJNb%2Fuploads%2FqvvHSw8yBxWuPb8fxCYW%2FRelease%202026.6.png?alt=media&amp;token=07112730-d446-40e4-bc6e-a1b971c520a3" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="169.2421875">Release 2026.6</th><th>10 July 2026</th></tr></thead><tbody><tr><td>iOS version</td><td>2.130.2</td></tr><tr><td>Android version</td><td>2.130.2</td></tr><tr><td>Jigx Builder</td><td>1.47.0</td></tr></tbody></table>

### Mobile Apps

#### **New Features & Improvements**

* **Type-to-confirm account deletion** - Account deletion now requires users to deliberately type a confirmation phrase before the action completes. This prevents accidental deletions on shared devices where users may tap Delete instead of Logout. The profile area has also been redesigned into consistent cards for a cleaner, more organized layout.
* **Sync interrupted state** - Syncs that are killed or sent to the background mid-flight now resolve to an explicit *interrupted* state rather than hanging indefinitely on the syncing screen. The interruption reason is recorded and datasource subscribers are notified, giving the app a clear signal to retry or recover gracefully. This is particularly helpful in field environments where connectivity or device usage is unpredictable.

#### **Bug Fixes**

* Fixed an intermittent issue where the primary action button failed to appear under poor connectivity. A fallback timer now ensures the action panel always renders, even when the device interaction queue stalls.
* Resolved a regression that caused login to hang on the sync screen with null datasource counts and no banners appearing. Stabilizing an internal logout callback allows initial sync to complete as expected.
* Fixed userId-related errors that caused offline writes to be silently dropped during auth-limbo or logout states. Background sync can now perform authenticated work without requiring an active UI session. An offline-launch initialization crash has also been resolved.
* On logout, push notification endpoints are now torn down per organization rather than leaving orphaned or mis-scoped endpoints active across sessions.
* Fixed an issue where portrait-orientation photos taken with the camera appeared stretched when exported to PDF on iOS. The fix corrects an EXIF orientation mismatch introduced with a previous iOS image optimization update.

### Jigx Management

* Bug fixes, performance improvements, and usability improvements.

## Release 2026.5

<figure><img src="https://3291832364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpFHfEsbWtmK7QZTXJNb%2Fuploads%2Fx59Jhx8fdrP4CwA95VeM%2FRelease%202026.5.png?alt=media&amp;token=e923fb27-17c8-4453-a1b9-2fd4d3af5ff3" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="169.2421875">Release 2026.5</th><th>24 June 2026</th></tr></thead><tbody><tr><td>iOS version</td><td>2.124.2</td></tr><tr><td>Android version</td><td>2.124.2</td></tr><tr><td>Jigx Builder</td><td>1.46.0</td></tr></tbody></table>

### <i class="fa-rocket-launch">:rocket-launch:</i> Announcement : Introducing JigxForms

**What  is JigxForms?** \
AI-powered forms. Built for the field. Ready anytime, anywhere.\
Create and submit powerful, customizable forms, directly from your phone.

<a href="https://jigx.com/products/jigx-for-acumatica/jigxforms/?utm_source=docs.jigx.com" class="button primary" data-icon="rocket-launch">Register now for JigxForms!  </a>

### Mobile Apps

#### Bug fixes

* Stuck-offline banner. Fixed an issue where users were seeing the offline banner permanently even after reconnecting.
* expo-task-manager crash - Patched a recurring iOS-only native crash (EXC\_BAD\_ACCESS) in Expo's expo-task-manager module caused by a use-after-free race condition.&#x20;
* Region filtering **-** After login, users were briefly seeing solutions from the wrong region (e.g. AP solutions appearing in a US East account). All organization observers now consistently apply region filtering.
* Fixed black camera preview on Samsung devices (forces stable CameraX 1.5.3) and adds shutter animation + haptic feedback on capture to stop accidental duplicate photos.

### Actions & events&#x20;

#### New features & improvements

* [action.open-url](https://docs.jigx.com/examples/readme/actions/open-url) now supports custom HTTP request headers when opening URLs. You can now securely open authenticated web content, documents, and other protected resources without requiring users to manually authenticate outside the app.
  * ​Added custom request headers, such as authorization tokens or API keys, to URL requests.
  * ​Enabled access to authenticated endpoints and protected resources directly from the app.
  * ​Supports scenarios where additional request context is required before a URL can be opened.
* [canGoBack](https://docs.jigx.com/examples/readme/events/cangoback) event - New jig-level property that lets you control whether users can navigate away from the current screen. It applies to all back-navigation triggers, including the Android hardware back button, iOS swipe-back, the header back button, `action.go-back`, and `action.go-to` initiated from the jig. Use `canGoBack` to confirm before leaving read-only screens, protect unsaved changes across multiple components, or block navigation entirely in kiosk-style flows.
* [Action lists](https://docs.jigx.com/examples/readme/actions/action-list) now support expressions for actions and `isSequential`, not just static arrays. Also hardens the expression engine so context aliases (@ctx.) aren't replaced inside quoted strings, with better validation and error logging.

## Release 2026.4

<figure><img src="https://3291832364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpFHfEsbWtmK7QZTXJNb%2Fuploads%2FKezWU8UHn5vUyBT62q6y%2FRelease%202026.4.png?alt=media&amp;token=8ac3cc36-2c4c-430c-994a-5534c7477ed8" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="169.2421875">Release 2026.4</th><th>10 June 2026</th></tr></thead><tbody><tr><td>iOS version</td><td>2.105.2</td></tr><tr><td>Android version</td><td>2.98.2</td></tr><tr><td>Jigx Builder</td><td>1.45.1</td></tr></tbody></table>

### <i class="fa-rocket-launch">:rocket-launch:</i> Announcement : Introducing JigxForms

**What  is JigxForms?** \
AI-powered forms. Built for the field. Ready anytime, anywhere.\
Create and submit powerful, customizable forms, directly from your phone.

<a href="https://jigx.com/products/jigx-for-acumatica/jigxforms/?utm_source=docs.jigx.com" class="button primary" data-icon="rocket-launch">Register now for JigxForms!  </a>

### Mobile Apps

#### New features & improvements

* Added the ability to manage [notifications](https://docs.jigx.com/building-apps-with-jigx/additional-functionality/notifications) in the app using the *Mark All as Read* icon, and the *Trash* icon to delete read or all notifications.
* A redesigned [media picker](https://docs.jigx.com/examples/readme/components/media-field) flow for the mobile app. Updated user experience for selecting and managing media across image, video, and document fields.

#### Bug Fixes

* Improved performance and rendering of image-heavy grids. Fixed navigation stutter and layout pop-in when opening grid screens. Prevented unnecessary image reloads and flashing during re-renders. This fix provides a smoother and more responsive grid browsing experience.
* Resolved an issue where video previews could appear as a black screen after recording or selecting a video from the device.
* Fixed notifications when tapping a push notification now correctly marks it as read.
* Fixed an issue where downstream actions could run before selected or captured files were fully saved. The media picker now waits for file persistence to complete before closing, improving reliability for scenarios such as signature capture and PDF generation.
* Files with spaces or special characters in their names now copy and upload correctly.
* Signing out now correctly clears downloaded files.

### Components and jig types

#### New features & improvements

* [jig-header](https://docs.jigx.com/examples/readme/components/jig-header#jig-header-with-logo) – Added support for displaying a custom logo in the navigation bar and controlling title visibility. This enables more flexible header configurations with different combinations of branding, titles, and actions to match your application’s design and branding requirements.

### Builder

#### New features & improvements

* Enhanced `onTableChanged` event handling for the Dynamic Data provider when Row-Level Security (RLS) is enabled. What’s changed :
  * `onTableChanged` events are now triggered only for data changes that the current user is permitted to see under RLS rules.
  * Prevented unnecessary `onTableChanged` events from firing when no actual data change has occurred.

### Updates to Quick-Start sample solutions

<table><thead><tr><th width="146.08984375">Solution</th><th>Additions</th></tr></thead><tbody><tr><td>jigx-samples</td><td>jig-header component with logo </td></tr></tbody></table>

## Release 2026.3

<figure><img src="https://3291832364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpFHfEsbWtmK7QZTXJNb%2Fuploads%2FcTV5wVyYQJeMIpP703Gi%2FRelease%202026.3.png?alt=media&amp;token=0920ee9e-dd00-4bc1-8aa3-1a0a93df2b83" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="169.2421875">Release 2026.3</th><th>2 June 2026</th></tr></thead><tbody><tr><td>iOS version</td><td>2.99.3</td></tr><tr><td>Android version</td><td>2.92.3</td></tr><tr><td>Jigx Builder</td><td>1.44.0</td></tr></tbody></table>

### <i class="fa-rocket-launch">:rocket-launch:</i> Announcement : Introducing JigxForms

**What  is JigxForms?** \
AI-powered forms. Built for the field. Ready anytime, anywhere.\
Create and submit powerful, customizable forms, directly from your phone.

<a href="https://jigx.com/products/jigx-for-acumatica/jigxforms/?utm_source=docs.jigx.com" class="button primary" data-icon="rocket-launch">Register now for JigxForms!  </a>

### Mobile Apps

#### New features & improvements

* Added support for **packages** - solutions composed inside other solutions. A jig can navigate into a package, execute its actions, with expression-resolved targets, and pass callback actions for the package to invoke back. The package property (target solution name) is available in the [action.go-to](https://docs.jigx.com/examples/readme/actions/go-to#accessing-a-jig-in-another-solution) and [execute.action](execute.actionhttps://docs.jigx.com/examples/readme/actions/execute-action#cross-solution-action-access). Package `onLoad`, `datasources`, and `@ctx.solution.*` state are scoped to the package. The app switcher now hides package, form, and data solutions, showing only real apps.
* **Solution title** available in expressions - The `=@ctx.solution.title` expression is now supported in YAML configurations, allowing you to reference the solution's display title (as defined in `index.jigx`) directly within your jigs. This follows the same pattern as other solution metadata properties such as `=@ctx.solution.name`, `=@ctx.solution.id`, and `=@ctx.solution.organizationId`. Use this expression wherever you need to dynamically display or reference the solution title, for example, in screen headers, labels, banners, or conditional logic, without hardcoding the title string into individual components.

#### Bug Fixes

* **Persistent file storage for media, signatures, and generated outputs** - Media picker selections, captured signatures, and generated PDFs and files are now written to permanent storage locations that survive cache purges, app restarts, and low-memory events. On iOS, media and signatures are saved to `Library/Application Support` (excluded from iCloud backup), and generated PDFs and files are saved to `Documents/Generated PDFs` and `Documents/Generated Files` respectively. On Android, outputs are directed to internal storage and the documents directory. A loading indicator is displayed in the media field while the background copy is in progress, keeping the experience responsive. This resolves a number of issues where files appeared to save successfully but were lost after the OS purged temporary or cache directories.
* Fixed an incorrect item height calculation in list widgets that caused list items to not properly fill the available container space. Items now render at the correct height regardless of screen size or the number of items in the list.
* Fixed an issue on the sign-in screen where the on-screen keyboard remained visible when entering the SSO flow from the email field, covering the SSO options modal and making it difficult or impossible to interact with. The keyboard is now dismissed before the SSO options modal opens, ensuring it is fully visible and accessible.
* Fixed an issue where `component.grid` rendered slowly on Android, with tiles appearing sequentially after the rest of the screen had already loaded. The per-tile entrance animation that triggered off-screen layer processing has been removed on both Android and iOS, so grid tiles now appear in a single frame and render consistently across platforms.
* Remove orphaned cached files during a full entity sync to prevent unbounded storage growth.
* Resolved issues affecting file uploads and downloads when using the Dynamic Data provider on unreliable network connections. File uploads and downloads now correctly transition to a Failed status when a network error occurs, instead of remaining indefinitely in an Uploading or Downloading state. Active file transfers on slow but functioning connections are no longer incorrectly cancelled by connection timeout checks during the transfer process.

### Components and jig types

#### New features & improvements

* [Web-view](https://docs.jigx.com/examples/readme/components/web-view) component - Add `allowInAppRedirect` option to `component.web-view`, when enabled, Jigx deeplinks navigate within the app, regular URLs open in an in-app browser, and other schemes delegate to the system.
* Added the `listHeader` property to [jig.list](jig.listhttps://docs.jigx.com/examples/readme/jig-types/jig_list), enabling fully configurable custom child components in the list header. This eliminates the need to use `jig.default` with `component.list` as a workaround for custom list header content, while maintaining the performance benefits of `jig.list`. The existing `header` /`jig-header` property remains reserved for configuring the hero header.

### Jigx Management

* Bug fixes, performance improvements, and usability improvements.

### Updates to Quick-Start sample solutions

<table><thead><tr><th width="146.08984375">Solution</th><th>Additions</th></tr></thead><tbody><tr><td>jigx-samples</td><td>List jig with listHeader</td></tr><tr><td> </td><td>List jig with listHeader &#x26; jig-header</td></tr><tr><td></td><td>Changed CSV data files to JSON files to upload to Management</td></tr></tbody></table>

## Release 2026.2

<figure><img src="https://3291832364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpFHfEsbWtmK7QZTXJNb%2Fuploads%2FNithG9clMOxZeBxw1b9o%2FRelease%202026.2.png?alt=media&amp;token=a1c18260-0d25-4758-bf2b-10927322a58f" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="169.2421875">Release 2026.2</th><th>22 May 2026</th></tr></thead><tbody><tr><td>iOS version</td><td>2.90.4</td></tr><tr><td>Android version</td><td>2.83.4</td></tr><tr><td>Jigx Builder</td><td>1.43.4</td></tr></tbody></table>

### <i class="fa-rocket-launch">:rocket-launch:</i> Announcement : Introducing JigxForms

**What  is JigxForms?** \
AI-powered forms. Built for the field. Ready anytime, anywhere.\
Create and submit powerful, customizable forms, directly from your phone.

<a href="https://jigx.com/products/jigx-for-acumatica/jigxforms/?utm_source=docs.jigx.com" class="button primary" data-icon="rocket-launch">Register now for JigxForms!  </a>

### Mobile Apps

#### Bug Fixes

* Fixed progressive performance degradation on Android.
* Resolved an issue where newly created users in existing or new organizations could see the “No Solution” screen in the mobile app, despite solutions being assigned correctly. This was caused by an update to the backend identity provider which introduced non-standard user IDs (GUIDs) for newly created users. This caused validation checks used during solution assignment to fail

### Actions

#### New features & improvements

* Add `page` property to [action.generate-pdf](https://docs.jigx.com/examples/readme/actions/generate-pdf) to control paper `size` (letter, legal, tabloid, a4, a3), `orientation` (portrait, landscape), custom dimensions (width/height in PDF points), and `margins` (uniform number or per-side object). Fix iOS PDF generation to paginate multi-page content correctly instead of producing a single oversized page.
* A new `onAppActivated` [event](https://docs.jigx.com/examples/readme/events) is available on solution and jig level, allowing you to define actions that automatically execute when the app returns to the foreground from the background or inactive state. This is useful for refreshing data or triggering syncs when a user returns to the app mid-session. Note that `onAppActivated` does not fire on initial app launch, only on subsequent foreground transitions.

### Builder

#### New features & improvements

* REST functions have been enhancement to allow the  `UseLocal:true` property to be used with secrets.
* [Index.jigx](https://docs.jigx.com/building-apps-with-jigx/ui/home-hub/index-settings) - You can now use the `bundleId` property in the `dependencies` section of the index.jigx file to restrict a solution to specific mobile app bundle IDs. This enhancement allows greater control over which branded or distributed mobile apps can load a solution. This enhancement is useful for managing solution availability across multiple branded mobile apps or deployment environments.

### Jigx Management

* Bug fixes, performance improvements, and usability improvements.

## Release 2026.1

<figure><img src="https://3291832364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpFHfEsbWtmK7QZTXJNb%2Fuploads%2FVPlr6VrG8vtokmAbvN2o%2FRelease%202026.1.png?alt=media&amp;token=92ea1e08-3dc3-4edd-982b-a848eb45dc8d" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="169.2421875">Release 2026.1</th><th>20 May 2026</th></tr></thead><tbody><tr><td>iOS version</td><td>2.80.0</td></tr><tr><td>Android version</td><td>2.73.0 </td></tr><tr><td>Jigx Builder</td><td>1.42.0</td></tr></tbody></table>

### <i class="fa-rocket-launch">:rocket-launch:</i> Announcement : Introducing JigxForms

**What  is JigxForms?** \
AI-powered forms. Built for the field. Ready anytime, anywhere.\
Create and submit powerful, customizable forms, directly from your phone.

<a href="https://jigx.com/products/jigx-for-acumatica/jigxforms/?utm_source=docs.jigx.com" class="button primary" data-icon="rocket-launch">Register now for JigxForms!  </a>

### Mobile Apps

#### **New features & improvements**

* All **input components** that support the `isRequired` property have been enhanced to provide a clearer visual indicator for mandatory fields. When `isRequired` is set to `true`, the field label now displays an *asterisk* (\*) instead of the previous *(optional)* text. This change brings the visual design in line with common UI standards and improves form clarity for users completing required information.

#### Bug Fixes

* Resolved an issue where resetting a list’s `amount.state` on a default jig did not work as expected. The state now resets correctly, ensuring consistent behavior when clearing or reinitializing list data.
* Fixed a backward compatibility issue with the `numberOfLines` property that caused display problems in swipeable lists. The UI now renders correctly, ensuring text truncation and layout behave as expected across both new and existing configurations.
* Fixed an issue where the `signature-field` did not respect the disabled configuration. Even when configured with `isDisabled: true`, the field remained interactive.
* Fixed an issue that caused signatures saved to dynamic files to display with a black background. Signatures now render with a white background in the app.
* Improved geolocation loading performance on Android 16, resolving an issue that caused slow load times.
* Improved continue logging alert wording and appearance.
* Fixed an issue where setting `isDisabled: true` on a `media-field` blocked all interaction, preventing users from viewing existing media. Tapping a disabled media field now opens the detail modal so existing media can be viewed. Add and delete actions remain blocked as expected.

### Components and jig types

#### New features & improvements

* [Banner](https://docs.jigx.com/examples/readme/components/banner) - The `component.banner` introduces a consistent and flexible way to display prominent, text-based messages directly within your Jigx screens. It standardizes how messages are presented with built-in styling, contextual icons, and optional actions for user interaction. Banners make it easy to communicate system states, important information, or contextual guidance in a visually distinct area of your app. Whether you’re confirming success, warning about an issue, or guiding users through next steps, Banners ensure critical messages stand out without disrupting the user flow. Banners can include actions such as Retry or Dismiss. Common use cases include:
  * *Error* — “Something went wrong. Please try again.”
  * *Warning* — “Changes not saved.”
  * *Success* — “Your settings were updated successfully.”
  * *Informational Text* — Highlight short messages or announcements that need visual emphasis within a section or card, such as updates, notices, or reminders.
* [Sections](https://docs.jigx.com/examples/readme/components/section) - The `component.section` has been enhanced to support `actions`, `icons` and `styling` on the section header, allowing you to add interactive options such as “Show More” directly within the section title area. This enhancement provides a smoother and more intuitive user experience, resulting in faster navigation and improved usability across your screens.
* Default [placeholder](https://docs.jigx.com/examples/readme/jig-types/common-jig-type-properties/placeholders) Enhancement **-** When configuring screens that use array-based data (such as lists or dropdown components), the app now displays a default placeholder whenever no data is available. If you prefer not to show a placeholder, you can control this by setting a when condition on the component so it only renders when data exists. When configuring screens that use array-based data (such as lists or dropdown components), the app now displays a default placeholder whenever no data is available. If you prefer not to show a placeholder, you can control this by setting a when condition on the component so it only renders when data exists.
* Enhanced lists to support multi-column layouts using the new `numberOfColumns` property, ideal for product catalogs, category menus, and compact dashboards. Multi-column layouts apply only to vertical lists and are supported exclusively in [component.product-item](https://docs.jigx.com/examples/readme/components/list/product-item) and [component.menu-item](https://docs.jigx.com/examples/readme/components/list/menu-item).
* [Menu-item](https://docs.jigx.com/examples/readme/components/list/menu-item) - Added a new list child component, the `menu-item` is a lightweight list-item designed for quick selection and navigation. It’s ideal for presenting categories, filters, or simple choices that guide you to the next screen or refine the data being displayed. Use a menu-item when you want users to tap an option to view related content, for example, selecting a project, choosing a day of the week, or filtering items by category.&#x20;
* [Header](https://docs.jigx.com/examples/readme/components/jig-header) - Introduced new `tiny` height option, providing greater flexibility for space-constrained UI layouts. This option complements the existing `small` and `medium` header sizes. You can now display a hero-style header even when no child components are present, simply assign a `height` value to the header. If no `height` is provided, the header defaults to a compact size.
* Enhanced [amount control](https://docs.jigx.com/examples/readme/components/amount-control) - The `amount-control` can now be used as a standalone component which provides a simple and intuitive way to adjust numeric values using plus and minus buttons. It’s ideal for shopping carts, quantity selectors, and any form where values need to increase or decrease in defined steps.
* The [product-item](https://docs.jigx.com/examples/readme/components/list/product-item) has been enhanced with the following:
  * Support for two distinct visual types to better fit your design needs.
    * `default` : The classic list row style. Best for dense lists where vertical space is at a premium.
    * `card` : A boxed, card-style presentation with elevation. Best for emphasizing individual items, especially when used with column (numberOfColumns) layouts.
  * Updated pricing colors: The current `price` now displays in red and the `discounted` amount in black, reversing the previous color hierarchy.
  * The bulk remove option (previously indicated by an 'X' icon) has been removed from the component and is no longer available.
  * Decimal formatting: You must explicitly handle decimal precision and formatting in data or expressions. Failure to format decimals (e.g., limiting to 2 decimal places) may result in UI alignment issues when multiple decimal points are displayed.
* [Rating](https://docs.jigx.com/examples/readme/components/rating) - The Rating component allows users to capture and display ratings within the app. It is commonly used in frontline workflows such as service feedback, inspections, and performance scoring.
* [Summary](https://docs.jigx.com/examples/readme/components/summary) component has been enhanced to include a `progress` value, which is useful for displaying completion or status over time, such as task progress, goals, or performance metrics. The value is shown as a visual progress indicator, making it easy to track how much has been completed at a glance.
* [Slider](https://docs.jigx.com/examples/readme/components/slider) - Use the `slider` component to select a numeric value within a defined range by dragging a thumb control. Typical use cases include price ranges, quantity selection, thresholds, and score inputs.
* The [bottomSheet](https://docs.jigx.com/examples/readme/jig-types/common-jig-type-properties/bottomsheet-_beta_#bottomsheet-set-to-open-by-default-when-the-parent-jig-opens) `initialValue` property now supports expressions, for example, `initialValue: =@ctx.solution.state.defaultSheet`.
* Added support for `component.field-row` with flex styling, enabling precise control over the proportional width of input components within a row. This allows for more flexible and responsive form layouts.
* Added `videoQualityPreset` property to `media-field`, `avatar-field`, and `action.open-media-picker`, enabling control over video compression on iOS - helping reduce file sizes or preserve original quality as needed.
* Added two new optional properties on [`jig.list`](jig.listhttps://docs.jigx.com/examples/readme/jig-types/jig_list):

  * `initialItemCount` - number of items to render on the first frame. Lower = faster initial display; higher = more upfront rendering. Accepts a number or expression.
  * `scrollRenderBuffer` - multiplier for how many viewports of content to keep rendered off-screen while scrolling. Lower = less memory; higher = smoother fast scrolling. Accepts a number or expression.

  The list's default behavior is improved - A FlatList now uses the calculated item-count based on screen/item height instead of a hardcoded 25, and `windowSize` defaults to 5 instead of 2.
* [jig.tabs](https://docs.jigx.com/examples/readme/jig-types/jig_tabs) - The tab navigation bar now automatically hides when only 1 tab is present in a jig.

#### Bug Fixes

* Fixed an issue where the media picker did not enforce the `maximumFileSize` restriction when opening, and file size validation errors were not displayed to the user.
* Add automatic file upload/download for `media`, `signature`, and `avatar` fields. Files now persist across form reopens with diff-based upload logic (only new files uploaded, removed files deleted). Per-field datasources enable efficient file comparison. Implements round-trip file persistence: capture → upload → reopen → display.

### Actions

#### New features & improvements

* [Show-alert action](https://docs.jigx.com/examples/readme/actions/show-alert) - The new `action.show-alert` provides a flexible way to deliver context-aware notifications without interrupting user flow. Configure alerts with a `title`, `description`, `icon`, and `style`, and choose whether they appear as a `toast` or `modal`. You also have full control over dismiss timing and behavior. This action introduces support for `groupId`, allowing related alerts to be grouped and reducing repeated or duplicate messages, especially useful for handling recurring errors. These enhancements offer clearer communication, prevent alert overload, and ensure users receive timely information in a consistent and non-disruptive way. In addition to screen actions, `show-alert` is also available within functions, allowing you to configure user-friendly alerts for errors coming from the remote systems.&#x20;
* Two improvements to state management actions:
  * **New:** `action.reset-component-state` - Reset component state. Optionally target specific components by `instanceId`, or omit to reset all components.
  * **Enhanced:** `action.reset-solution-state` - The `changes` parameter is now optional. Omit it to reset all solution state keys at once.
* Added `videoQualityPreset` property to  `action.open-media-picker`, enabling control over video compression on iOS - helping reduce file sizes or preserve original quality as needed.
* [action.go-back](https://docs.jigx.com/examples/readme/actions/go-back) - Add support for navigating to a specific jig using the go-back action's `to` option.
* [Action-evaluate](https://docs.jigx.com/examples/readme/actions/evaluate) - An action that evaluates any data structure. The `action.evaluate` action evaluates any value you pass into the options `value` property. It supports objects, arrays, primitives, and nested combinations of all three. Expressions are evaluated first. Any `TextLocale` or `TextWithFormat` values in the result are then resolved to strings. The final result is stored in outputs `value` and keeps the original shape.
* Added the [onBlur](https://docs.jigx.com/examples/readme/events) event which is triggered when you leave a form field, for example, when you tap into another field, close a picker, or dismiss the keyboard. It allows you to run actions after the user finishes interacting with a field, rather than on every value change. `OnBlur` only applies to certain form fields.
* Added  `=@ctx.actions.<id>.state.isPending` expression to track whether an async action is currently executing. Returns `true` while an async action is in progress and `false` when idle. Supported for all async actions. Sync-only actions (e.g. `go-to`, `set-state`, `reset-state`) always return `false`.

### Builder

#### New features & improvements

* Enhancement to [REST functions](https://docs.jigx.com/building-apps-with-jigx/data/data-providers/rest/rest-error-handling) now include the  `show-alert` action within `errors` in functions, allowing you to display alerts automatically when errors occur.

  This enhancement enables you to:

  * Configure **custom alerts** that trigger on function errors.
  * Configure customized [OAuth error messages](https://docs.jigx.com/administration/organization-settings/oauth-configurations#configuring-oauth-error-messages) in function errors.
  * Define **actions** directly on those alerts (e.g., *Retry*, *Dismiss*).
  * Use `groupId` to group related alerts and control how repeated error notifications are handled.

  This integration provides greater flexibility and visibility during error handling, helping users quickly understand and respond to issues within the app.
* A unified approach for [text style and formatting options](https://docs.jigx.com/examples/readme/components/common-component-properties#text-or-label) has been introduced to simplify how you configure text across components. This enhancement standardizes the way line options (such as `fontSize`, `isBold`, `color`, and `numberOfLines`) are defined in YAML, ensuring a consistent structure and behavior across all components that display text.
* **Instantly visualize color values in Builder** - a color decorator has been added to the YAML editor in Jigx Builder, making it easier to visually identify color values directly within your jigx configuration files. Color details also appear in hover pop-ups, providing quick previews and hex values, ensuring accuracy when selecting or adjusting colors.
* Automatic [change queuing for Dynamic Data tables](https://docs.jigx.com/building-apps-with-jigx/data/offline-remote-data-handling#dynamic-data-change-tracking-and-queuing) (`default/tableName`) — All local database operations (CRUD, SQL, and find/replace) now track and queue changes using a temporary table workflow. Changes are detected, batched (INSERT/UPDATE/DELETE), and prepared for sync automatically. Includes built-in error handling and guaranteed cleanup, with no changes required to existing implementations.
* [Global datasources now support inputs](https://docs.jigx.com/building-apps-with-jigx/data/datasources#global-datasource-inputs) - A global datasource can be instantiated multiple times within a Jig, each with its own input values. Use `ctx.inputs` inside the global datasource configuration to access them, the same way inputs work in custom components.
* [Cross-package data access and action execution](https://docs.jigx.com/building-apps-with-jigx/data/datasources/cross-solution-data-access)

  You can now query data from and execute actions in another installed solution directly from your datasource or jig configuration. Add a `package` property to any entity definition in a `datasource.sqlite` config to include data from another solution's SQLite database. In your SQL query, reference cross-package tables using `[package-name].[entity-name]` notation, making it straightforward to `JOIN` or `UNION ALL` data across solutions in a single query. To execute an action from another solution, add a `package` property to `action.execute-action` alongside the action name and any parameters. This release also adds a `performOperations` property to `guard` functions, giving you explicit control over whether table write operations run after a guard executes, useful when the default behavior (run on guard failure) does not fit your logic.

#### Bug fixes:

* Fixed an issue where using a shared expression inside a `when` condition did not evaluate correctly. This occurred in cases where the shared expression referenced `ctx.datasource` and was used within an `onFocus` event. The condition now evaluates properly, ensuring consistent behavior whether the expression is used directly in the `when` condition or referenced through a shared expression.

### Jigx Management

* Bug fixes, performance improvements, and usability improvements.

### Known Issues

* *Referenced actions for* `jig.tabs` *not executing at runtime* - Referenced actions configured within jig.tabs are currently detected in Builder, but fail to run in the app. At runtime, the action returns a “no configuration found for … action” error, indicating that the referenced action is not being resolved correctly.

  *Workaround:* None at this time.&#x20;
* *Header image not displaying when iOS preview is triggered -* When a jig is configured with iOS `preview`, the header image does not display in the preview window. This occurs only when preview is invoked, normal navigation into the jig displays the header image as expected.

  *Workaround:* None currently available.

### Updates to Quick-Start sample solutions

<table><thead><tr><th width="146.08984375">Solution</th><th>Additions</th></tr></thead><tbody><tr><td>jigx-samples</td><td>Banner component</td></tr><tr><td> </td><td>Sections component</td></tr><tr><td> </td><td>Show-alert action</td></tr><tr><td></td><td>Menu-item component</td></tr><tr><td></td><td>Product-item component</td></tr><tr><td></td><td>Amount-control component</td></tr><tr><td></td><td>Rating component</td></tr><tr><td></td><td>Summary (progress) component</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.jigx.com/changelog/release-notes-2026.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
