15
Views
1
Comments
Solved
Conflict between OutSystems OTA updates and Android APK updates – Extensibility chang
Application Type
Mobile
Service Studio Version
11.55.51 (Build 64476)

Hello Community,

I am facing a critical issue related to Android Extensibility Configuration and OutSystems OTA updates, and I would like clarification or an official workaround.

Scenario

  1. I have a mobile app built with OutSystems.

  2. I made changes in Extensibility Configuration (AndroidManifest-related changes such as intent-filters / deep links).

  3. I generated a new APK/AAB and published it on the Google Play Store.

  4. Users already have the app installed.

Problem

  • When users open the app before updating from Play Store, they immediately receive OTA updates (UI/logic changes).

  • After that, the app redirects the user to update the app from Play Store.

  • Even after updating the app from Play Store:

    • UI and logic changes are applied

    • ❌ Extensibility Configuration changes (manifest changes) are NOT applied

  • This creates a conflict state where:

    • Runtime/UI is updated

    • Native configuration remains old

Expected Behavior

When a user updates the app from Play Store:

  • The entire APK (native + runtime) should be replaced

  • AndroidManifest / extensibility changes should be applied

Questions

  1. Is this a known limitation of OutSystems mobile apps?

  2. Is OTA update overriding or masking native APK updates?

  3. Is there a supported way to force native extensibility changes to apply for all users?

  4. Is it recommended to disable OTA updates when releasing extensibility changes?

  5. What is the correct release strategy to avoid this conflict?

Current Workaround (not ideal)

  • Asking users to uninstall and reinstall the app

  • Forcing updates via version checks

Environment

  • Platform: OutSystems Mobile

  • Android App Bundle (AAB)

  • Play Store distribution

  • Extensibility changes: AndroidManifest (intent-filters / deep links)

This issue is very important for production apps, especially when deep links, permissions, or native integrations change.

Any official guidance, documentation reference, or best practice would be highly appreciated.

Thank you.

2024-02-16 11-58-28
Sheikh Mohd Fahad
Solution

Hey @VIVEKKUMAR PANCHAL,

I think this behavior you’re seeing is a known limitation of how OutSystems mobile OTA updates work versus native app updates, and it’s documented in the OutSystems docs.

Official OutSystems Documentation References

Over-the-air (OTA) upgrades behavior 
OutSystems explains that mobile apps support OTA (Over-the-air) upgrades — which update the runtime bundle (UI & logic) without going through the store — but this does not update the native shell (APK/AAB): Document Link

Mobile app update scenarios 
The official update scenarios documentation highlights mobile update mechanisms and reinforces that OTA (hybrid) updates are separate from full native updates, requiring new builds and distribution via the stores: Document Link 

Mobile app packaging & distribution 
Generating and distributing your mobile app (AAB/APK) to the Play Store replaces the native app shell, but OTA updates continue to apply the runtime parts independently until users update the shell: Document Link 

Update distribution configuration (Store-only vs Hybrid) 
OutSystems also provides a feature (under Configure mobile app updates distribution) to switch between hybrid (OTA) updates and store-only updates, so you can choose that users must update via the Play Store for all changes, at least in newer versions of the platform: Document Link 

Keeping apps up to date (ODC guidance) 
OutSystems Developer Cloud docs further describe how app updates are handled and how versions are detected and updated on the device — reinforcing that this concerns the app’s dynamic content and not the native shell itself: Document Link 

I hope this will help you.


Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.