With OTA enabled package build fails.

0
in StudioPro 10.23.0 and 11.6.4 when I try to build my app with OTA enabled the package build fails from the developer portal. If I disable OTA the package build succeeds.The app has custom native pluggable widgets. Enabling OTA causes a package build to fail.  Disable OTA and my package builds successfully.Should I expect this type of error?  This happened in StudioPro 10.23.0 as well, and so I upgraded,but it is still failing.=================== BUILD OUTPUT START =====================Pipeline created at 2026-03-23T12:21:30Z [teamserver-discovery] 2026-03-23T12:21:35.231908968Z Project: 828708ab-955e-40cf-a606-9d93d0b13d05 [teamserver-discovery] 2026-03-23T12:21:35.232077374Z Determining repository type... [teamserver-discovery] 2026-03-23T12:21:35.402632572Z Found type: git [teamserver-discovery] 2026-03-23T12:21:35.405409917Z Found URL: https://git.api.mendix.com/828708ab-955e-40cf-a606-9d93d0b13d05.git [teamserver-checkout] 2026-03-23T12:21:47.834808941Z Project: 828708ab-955e-40cf-a606-9d93d0b13d05 [teamserver-checkout] 2026-03-23T12:21:47.834820607Z Branch: OTA_and_studioPro_11.6.4 [teamserver-checkout] 2026-03-23T12:21:47.834828103Z Revision: 9020c2b37104023b00cb72cd0e25a655192c4f80 [teamserver-checkout] 2026-03-23T12:21:47.834843244Z Getting temporary access URL... [teamserver-checkout] 2026-03-23T12:21:47.971030245Z Cloning repository... [teamserver-checkout] 2026-03-23T12:21:59.678692735Z Checked out revision 9020c2b37104023b00cb72cd0e25a655192c4f80 [teamserver-checkout] 2026-03-23T12:22:00.103704233Z Finding MPR file... [teamserver-checkout] 2026-03-23T12:22:00.112719560Z Found: /workspace/build/source/nTRUit.mpr [teamserver-checkout] 2026-03-23T12:22:00.115494046Z Mendix version: 11.6.4 [compile] 2026-03-23T12:22:21.877968230Z Using Java 21 [compile] 2026-03-23T12:22:22.182358939Z [compile] 2026-03-23T12:22:22.186422113Z __ __ ____ _ _ _ [compile] 2026-03-23T12:22:22.189739155Z | \/ | | _ \ (_) | | | [compile] 2026-03-23T12:22:22.193156463Z | \ / |_ _| |_) |_ _ _| | __| | [compile] 2026-03-23T12:22:22.195819614Z | |\/| \ \/ / _ <| | | | | |/ _` | [compile] 2026-03-23T12:22:22.199095906Z | | | |> <| |_) | |_| | | | (_| | [compile] 2026-03-23T12:22:22.204359705Z |_| |_/_/\_\____/ \__,_|_|_|\__,_| [compile] 2026-03-23T12:22:22.205894010Z [compile] 2026-03-23T12:22:22.274685885Z v11.6.4 [compile] 2026-03-23T12:22:22.277546204Z [compile] 2026-03-23T12:22:26.993952326Z Starting build for Mendix Project file: /workspace/build/source/nTRUit.mpr [compile] 2026-03-23T12:22:26.998963206Z Using the following options: [compile] 2026-03-23T12:22:27.001806596Z * Build target: Package [compile] 2026-03-23T12:22:27.005618836Z * Deployment package file: /workspace/build/dist/9114a2bf-cafb-4e67-8b2f-806013378184.mda [compile] 2026-03-23T12:22:27.011160576Z * Model version: 1.0.20.9020c2b3 [compile] 2026-03-23T12:22:27.012947945Z * Model description: Upgrade StudioPro to 11.6.4 from 10.23.0 (and required package updates NanoflowCommons, NativeMobileResources.) [compile] 2026-03-23T12:22:27.015669803Z * Generating software bill of materials (SBOM) [compile] 2026-03-23T12:22:27.019804145Z Reading project file... [compile] 2026-03-23T12:22:37.641293037Z Building and packaging project... [compile] 2026-03-23T12:22:37.647030502Z Executing step 'Synchronize with file system' [compile] 2026-03-23T12:22:37.653673118Z Synchronizing with file system... [compile] 2026-03-23T12:22:40.154948677Z Executing step 'Initialize' [compile] 2026-03-23T12:22:40.189782640Z Preparing deployment... [compile] 2026-03-23T12:22:40.247858454Z Executing step 'Check prerequisites' [compile] 2026-03-23T12:22:40.250119275Z Checking for errors... [compile] 2026-03-23T12:22:50.992694403Z Executing step 'Clean deployment directory' [compile] 2026-03-23T12:22:50.996933306Z Cleaning deployment directory... [compile] 2026-03-23T12:23:02.245756477Z Cleaning ml deployment directory... [compile] 2026-03-23T12:23:02.248109295Z Cleaning web deployment directory... [compile] 2026-03-23T12:23:02.250573134Z Cleaning source web deployment directory... [compile] 2026-03-23T12:23:02.253168002Z Cleaning native deployment directory... [compile] 2026-03-23T12:23:02.255569590Z Executing step 'Perform model transformations' [compile] 2026-03-23T12:23:02.257756867Z Applying model transformations... [compile] 2026-03-23T12:23:02.329826343Z Executing step 'Generate deployment files' [compile] 2026-03-23T12:23:02.332510069Z Writing files... [compile] 2026-03-23T12:23:09.607199488Z Executing step 'Prepare deployment' [compile] 2026-03-23T12:23:09.624203025Z Generating styles for icons [compile] 2026-03-23T12:23:09.634747888Z Cleaning web deployment directory... [compile] 2026-03-23T12:23:09.814253700Z Executing step 'Build deployment structure' [compile] 2026-03-23T12:23:10.024469377Z Exporting ml models to ml deployment directory... [compile] 2026-03-23T12:23:10.027640669Z Compiling theme files... [compile] 2026-03-23T12:23:10.031534230Z Exporting a theme... [compile] 2026-03-23T12:23:10.602024022Z Generating font files for icons [compile] 2026-03-23T12:23:10.607965996Z Exporting pages... [compile] 2026-03-23T12:23:12.967880519Z Exporting metadata... [compile] 2026-03-23T12:23:12.970453734Z Exporting microflows model... [compile] 2026-03-23T12:23:13.234320224Z Exporting custom widgets... [compile] 2026-03-23T12:23:13.636801177Z Bundling custom widgets... [compile] 2026-03-23T12:23:16.243079814Z Compiling JavaScript actions... [compile] 2026-03-23T12:23:18.263028020Z Exporting pluggable native widgets... [compile] 2026-03-23T12:23:18.805340991Z Exporting native pages [compile] 2026-03-23T12:23:19.273682740Z Executing step 'Save model to deployment directory' [compile] 2026-03-23T12:23:19.282710553Z Saving model to deployment directory... [compile] 2026-03-23T12:23:20.237826272Z Executing step 'Finalize deployment structure' [compile] 2026-03-23T12:23:20.240385121Z Post-processing generation results... [compile] 2026-03-23T12:23:20.245290897Z Generating software bill of materials [compile] 2026-03-23T12:23:23.547140313Z Executing step 'Bundle application' [compile] 2026-03-23T12:23:23.550977816Z Compiling Java... [compile] 2026-03-23T12:23:53.604346604Z Cleaning up deployment directory... [compile] 2026-03-23T12:23:53.608949642Z Compressing web resources... [compile] 2026-03-23T12:23:53.882545088Z Bundling native app for iOS [compile] 2026-03-23T12:25:45.903196317Z Executing step 'Clean up' [compile] 2026-03-23T12:25:45.904882975Z Cleaning up... [compile] 2026-03-23T12:25:46.268862569Z ERROR: Packaging iOS failed, check /workspace/build/source/deployment/log/native_packager_bundle_ios_log.txt for more info. [compile] 2026-03-23T12:25:46.271519154Z System.Exception: Exception of type 'System.Exception' was thrown. [compile] 2026-03-23T12:25:46.275541071Z at Mendix.Modeler.WebUI.Deployment.Native.Packager.NativePackagerManager.Bundle(IProject project, String logPath, String platform, String bundleName, String bundleDirectory, String assetsDirectory) in Mendix.Modeler.WebUI\Deployment\Native\Packager\NativePackagerManager.cs:line 189 [compile] 2026-03-23T12:25:46.279443230Z at Mendix.Modeler.WebUI.Deployment.Native.Packager.NativePackagerManager.Bundle(IProject project, String logPath, String platform, String bundleName, String bundleDirectory, String assetsDirectory) in Mendix.Modeler.WebUI\Deployment\Native\Packager\NativePackagerManager.cs:line 197 [compile] 2026-03-23T12:25:46.285116126Z at Mendix.Modeler.WebUI.Deployment.Native.Packager.NativePackagerManager.BundleIOS(IProject project) in Mendix.Modeler.WebUI\Deployment\Native\Packager\NativePackagerManager.cs:line 137 [compile] 2026-03-23T12:25:46.288363930Z BUILD FAILED==================== BUILD OUTPUT END ======================
asked
4 answers
0

You generally should not treat this as expected normal behavior.


From your log, the build gets quite far and only fails at:

Bundling native app for iOS


So this does not look like a general Studio Pro compile issue. It looks more like an OTA + native bundle problem, which can happen when the app contains custom native pluggable widgets.


My first guess would be this:

With OTA enabled, Mendix has to create the OTA-compatible native bundle, and one of the custom native widgets is probably introducing something that is not bundling correctly for iOS. That could be:

  • an unsupported native dependency
  • a React Native / widget package mismatch
  • a missing import or JS package
  • or a widget that works in a normal package build, but not in the OTA bundling path


So I would not say “OTA itself is broken”, but I also would not ignore the fact that it only fails when OTA is on. That usually points to widget compatibility with OTA packaging.


The most important next step is to check this file from the build output:

deployment/log/native_packager_bundle_ios_log.txt


That file usually contains the real error. The main build log only shows the final wrapper exception.


A few things I would suggest checking:

First, try to isolate whether this is really caused by one custom widget.

Temporarily remove or disable the custom native pluggable widgets and build again with OTA enabled. If the package succeeds, that narrows it down quickly.


Second, verify that each custom native widget is built against the Mendix / React Native stack used by 11.6.4. Even if it behaved similarly in 10.23.0, upgrading Studio Pro alone will not fix a widget-level compatibility issue.


Third, rebuild the widget packages themselves. If these are custom widgets maintained in-house, make sure their JS dependencies are installed correctly and the widget bundle is regenerated before importing the latest package into the app.


Also, clear local generated folders before retrying, especially if this project has gone through upgrades:

  • deployment
  • node_modules inside custom widget projects
  • any old widget dist/build output


If this resolves your issue, please mark it as accepted.


answered
0

Thank you Ahmet for the suggestions.  

I dont know how to access the log file referenced on the package build output page. It builds fine locally, but I am guessing when it builds the server locally it does not build OTA.


I removed all the native pluggable widgets, references to them on pages, and the mpk files from the widgets directory, and I am stiill seeing the same error:

I removed all custom widgets, the mpk files from the widgets directory and all references to the widgets in the model, and I am still seeing the same error:



...

compile] 2026-03-24T21:57:15.001253798Z * Model version: 1.0.20.45bcc5cd [compile] 2026-03-24T21:57:15.003640498Z * Model description: remove all custom native pluggable widgets [compile] 2026-03-24T21:57:15.006161463Z * Generating software bill of materials (SBOM) [compile] 2026-03-24T21:57:15.008631673Z Reading project file... [compile] 2026-03-24T21:57:24.219402117Z Building and packaging project... [compile] 2026-03-24T21:57:24.225176052Z Executing step 'Synchronize with file system' [compile] 2026-03-24T21:57:24.230966983Z Synchronizing with file system... [compile] 2026-03-24T21:57:26.296397304Z Executing step 'Initialize' [compile] 2026-03-24T21:57:26.320034670Z Preparing deployment... [compile] 2026-03-24T21:57:26.398883262Z Executing step 'Check prerequisites' [compile] 2026-03-24T21:57:26.401094462Z Checking for errors... [compile] 2026-03-24T21:57:35.251696640Z Executing step 'Clean deployment directory' [compile] 2026-03-24T21:57:35.254472655Z Cleaning deployment directory... [compile] 2026-03-24T21:57:44.770132463Z Cleaning ml deployment directory... [compile] 2026-03-24T21:57:44.772391044Z Cleaning web deployment directory... [compile] 2026-03-24T21:57:44.774613498Z Cleaning source web deployment directory... [compile] 2026-03-24T21:57:44.776841700Z Cleaning native deployment directory... [compile] 2026-03-24T21:57:44.778979338Z Executing step 'Perform model transformations' [compile] 2026-03-24T21:57:44.783226980Z Applying model transformations... [compile] 2026-03-24T21:57:44.840805757Z Executing step 'Generate deployment files' [compile] 2026-03-24T21:57:44.843899952Z Writing files... [compile] 2026-03-24T21:57:51.979421062Z Executing step 'Prepare deployment' [compile] 2026-03-24T21:57:51.981706796Z Generating styles for icons [compile] 2026-03-24T21:57:51.991167629Z Cleaning web deployment directory... [compile] 2026-03-24T21:57:52.157792807Z Executing step 'Build deployment structure' [compile] 2026-03-24T21:57:52.333562682Z Exporting ml models to ml deployment directory... [compile] 2026-03-24T21:57:52.336602811Z Compiling theme files... [compile] 2026-03-24T21:57:52.340208685Z Exporting a theme... [compile] 2026-03-24T21:57:52.795155091Z Generating font files for icons [compile] 2026-03-24T21:57:52.797264658Z Exporting pages... [compile] 2026-03-24T21:57:54.805584699Z Exporting metadata... [compile] 2026-03-24T21:57:54.807895025Z Exporting microflows model... [compile] 2026-03-24T21:57:55.078770671Z Exporting custom widgets... [compile] 2026-03-24T21:57:55.486041462Z Bundling custom widgets... [compile] 2026-03-24T21:57:57.907467361Z Compiling JavaScript actions... [compile] 2026-03-24T21:57:59.773009358Z Exporting pluggable native widgets... [compile] 2026-03-24T21:58:00.111514142Z Exporting native pages [compile] 2026-03-24T21:58:00.536268635Z Executing step 'Save model to deployment directory' [compile] 2026-03-24T21:58:00.538825818Z Saving model to deployment directory... [compile] 2026-03-24T21:58:01.369368488Z Executing step 'Finalize deployment structure' [compile] 2026-03-24T21:58:01.371854204Z Post-processing generation results... [compile] 2026-03-24T21:58:01.375803168Z Generating software bill of materials [compile] 2026-03-24T21:58:04.197734986Z Executing step 'Bundle application' [compile] 2026-03-24T21:58:04.201787001Z Compiling Java... [compile] 2026-03-24T21:58:28.759145043Z Cleaning up deployment directory... [compile] 2026-03-24T21:58:28.762341792Z Compressing web resources... [compile] 2026-03-24T21:58:29.061888421Z Bundling native app for iOS [compile] 2026-03-24T22:00:00.907631156Z Executing step 'Clean up' [compile] 2026-03-24T22:00:00.910462492Z Cleaning up... [compile] 2026-03-24T22:00:01.264386573Z ERROR: Packaging iOS failed, check /workspace/build/source/deployment/log/native_packager_bundle_ios_log.txt for more info. [compile] 2026-03-24T22:00:01.266793246Z System.Exception: Exception of type 'System.Exception' was thrown. [compile] 2026-03-24T22:00:01.269970524Z at Mendix.Modeler.WebUI.Deployment.Native.Packager.NativePackagerManager.Bundle(IProject project, String logPath, String platform, String bundleName, String bundleDirectory, String assetsDirectory) in Mendix.Modeler.WebUI\Deployment\Native\Packager\NativePackagerManager.cs:line 189 [compile] 2026-03-24T22:00:01.273351942Z at Mendix.Modeler.WebUI.Deployment.Native.Packager.NativePackagerManager.Bundle(IProject project, String logPath, String platform, String bundleName, String bundleDirectory, String assetsDirectory) in Mendix.Modeler.WebUI\Deployment\Native\Packager\NativePackagerManager.cs:line 197 [compile] 2026-03-24T22:00:01.276416074Z at Mendix.Modeler.WebUI.Deployment.Native.Packager.NativePackagerManager.BundleIOS(IProject project) in Mendix.Modeler.WebUI\Deployment\Native\Packager\NativePackagerManager.cs:line 137 [compile] 2026-03-24T22:00:01.279086645Z BUILD FAILED

==================== BUILD OUTPUT END ======================


answered
0

Hi,


This is not a random failure — what you’re seeing is a known limitation when using OTA together with custom native pluggable widgets.

From your logs, the important part is:

  • Build goes through model, Java, web → all fine
  • Fails at “Bundling native app for iOS”

That means the issue is purely in the native bundling stage triggered by OTA, not your Mendix logic.

What’s actually happening

When you enable OTA:

  • Mendix switches to a different native packaging flow
  • It builds a JavaScript bundle (OTA bundle) instead of a full native build
  • This process is stricter and has limitations on:
    • Native dependencies
    • Third-party libraries
    • Custom widget structure

If your app contains custom native pluggable widgets, OTA will fail if:

  • The widget uses unsupported native modules
  • The widget has incorrect dependency definitions
  • The widget was not rebuilt properly after upgrade

That’s why:

  • OTA OFF → normal native build → works
  • OTA ON → OTA bundler → fails

Is this expected?

Yes.

In real projects, OTA + custom native widgets is a known pain point.

OTA is only fully reliable when using:

  • Mendix-supported native widgets
  • OTA-compatible libraries

What you should check

Open this file from your build logs:

/deployment/log/native_packager_bundle_ios_log.txt

That file will show the actual root error.

Typical issues found there:

  • “Module not found”
  • “Cannot resolve dependency”
  • “Unsupported native module”
  • Metro bundler errors

What usually fixes it

1. Rebuild all custom widgets

For every custom native widget:

  • Delete node_modules
  • Run:
  • npm install
  • npm run build
  • Repackage and re-import into Mendix

After upgrading from 10 → 11, this step is critical.

2. Check widget dependencies

Inside widget package.json:

  • Avoid native libraries requiring linking
  • Ensure correct versions of:
    • react
    • react-native

OTA is strict about dependency compatibility.

3. Verify NativeMobileResources

Make sure:

  • NativeMobileResources → latest version
  • All native modules are compatible with your Mendix version

4. Identify unsupported native modules

If your widget uses:

  • react-native-camera
  • react-native-fs
  • any custom native bridge

OTA will likely fail.

In such cases, either:

  • Replace with supported alternatives
  • Or remove OTA

If your app depends on custom native widgets:

  • Do not enable OTA
  • Use standard native build pipeline

OTA is mainly suitable when:

  • No custom native code
  • Only supported widgets are used

This behavior is expected when using OTA together with custom native pluggable widgets. Enabling OTA switches the build process to a stricter native bundling mechanism, which often fails if custom widgets include unsupported dependencies or are not fully compatible with the OTA pipeline. The failure in your logs occurs during the iOS native bundling step, which confirms this.

To resolve the issue, you should inspect the native_packager_bundle_ios_log.txt file to identify the exact dependency or bundling error. In most cases, rebuilding all custom widgets and verifying their dependencies resolves the issue. However, if the widgets rely on unsupported native modules, OTA cannot be used reliably, and disabling OTA is the recommended approach.

If you share that iOS log file, I can point exactly which dependency is breaking the build.


answered
0

Your update is very useful. If you removed all custom native pluggable widgets, removed their references from the model, and even removed the .mpk files, but the OTA package build still fails at exactly the same step, then this no longer points to your widgets as the main cause.


At this point, it looks more like an issue in the OTA iOS bundling path itself for this app, or something still present in the native bundle generation even after the widgets were removed. The important part is that the failure is still happening only at “Bundling native app for iOS”, so the model is compiling, Java is compiling, and the normal package generation is fine. The problem is specifically in the OTA/native iOS packaging step.


So no, I would not treat this as expected behavior, and based on your latest test I also would not continue focusing on the custom widgets anymore.


What I would check next is:


Make sure there are no leftover native package references in the project after removing the widgets, especially in any native-related resources that may still be exported during packaging.


Also try creating a very small test branch from the same app and disable as much native-specific functionality as possible, then build again with OTA enabled. If even that still fails, it strongly suggests a platform-side OTA packaging issue rather than an app logic issue.


Since the build output only shows the wrapper exception and you cannot access /workspace/.../native_packager_bundle_ios_log.txt from the portal, the practical next step is probably to raise a Mendix Support ticket and include:


  • the full build log
  • the Mendix version
  • confirmation that OTA-off succeeds
  • confirmation that OTA-on fails
  • confirmation that the issue still happens after removing all custom native widgets


That last point is especially important, because it shows this is reproducible even in a stripped-down version of your app.


So my conclusion would be: this does not look like normal expected behavior, and with your latest test results it now looks more like an OTA iOS packaging issue than a widget compatibility issue.

If this resolves your issue, please don't forget to mark it as accepted.


answered