web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

No record found.

News and Announcements icon
Community site session details

Community site session details

Session Id :
Small and medium business | Business Central, N...
Suggested Answer

Completely remove fields with same name in separate apps

(6) ShareShare
ReportReport
Posted on by 429
Hi all, 
 
We have 2 separate apps published on AppSource and we ended in a situation where a field with the same name in the same table extension exists in both the apps. 
Upon installing the app this is failing due to this issue as it finds the same field in the same table twice.
We have obsoleted the field in one of the apps with Obsolete State set to REMOVED and published to AppSource. Upon installation, the same erorr is still being returned. 
 
What is the best way to proceed in this case? Can the field be completely removed (i.e. remove the code) from the app in which we have obsoleted it? 
 
Thanks in advance. 
I have the same question (0)
  • Teagen Boll Profile Picture
    1,013 Super User 2026 Season 1 on at
    The fields should be set as different names. But you can make them have the same Caption - Caption property - Business Central | Microsoft Learn
     
    And it's recommended that you also set the Visible property to false for the older field - Visible property - Business Central | Microsoft Learn
  • Suggested answer
    Gregory Mavrogeorgis Profile Picture
    901 Super User 2026 Season 1 on at
    Hi,
     
    Why it still fails: ObsoleteState = Removed doesn’t drop the field. The installer still sees two fields with the same technical name/ID on the same table → collision.
    Best fix now: Pick which app “owns” the field. In the other app, rename the legacy field’s technical Name (and, if needed, change its ID) to something unique, keep it Removed and hidden, and add a tiny upgrade codeunit to copy any data to the owned field. Publish that.
    Can we fully delete it? Physically removing a field is a breaking schema change on AppSource and usually blocked unless you go through Microsoft’s breaking-change process. Safer to keep the legacy field hidden/removed.
    Future-proofing: Use a unique prefix per app and enable AppSourceCop/CodeCop to prevent cross-app name clashes.
     
    If you have found this help full please mark it as verified

     
  • Suggested answer
    Jainam M. Kothari Profile Picture
    15,666 Super User 2026 Season 1 on at
    Hello,
     
    The best approach is to completely delete the field from the app where it's no longer needed—remove its declaration and all references, then republish the updated app.
     
    This ensures the field is fully removed from the schema, eliminating the conflict.
     
    Also, verify that no upgrade or data migration logic depends on the field before removal.
  • Suggested answer
    YUN ZHU Profile Picture
    98,012 Super User 2026 Season 1 on at
    The only solution is to completely delete the field; the Obsoleted field is also stored in the table.
    However, this problem generally won't occur if you use a right prefix or suffix.
     
    Thanks
    ZHU
  • Suggested answer
    Khushbu Rajvi. Profile Picture
    21,573 Super User 2026 Season 1 on at
    Marking a field as Removed doesn’t physically delete it from the database. To fix the duplicate field issue, you must either rename the field (add a prefix or suffix) in one app or make one app depend on the other so only one defines the field. Complete removal isn’t allowed on AppSource without a breaking schema change.
  • Suggested answer
    OussamaSabbouh Profile Picture
    10,972 Super User 2026 Season 1 on at
    Hello,
     
    ObsoleteState = Removed doesn’t delete the field , it still exists and causes conflicts.
    To fix this:
     
    Completely remove the field in a new app version (requires uninstall + schema sync).
     
    Or move the field to a shared dependency using MovedFrom / MovedTo.
     
    Always use unique field names and IDs
     
    Regards,
    Oussama Sabbouh
  • Suggested answer
    Aman Kakkar Profile Picture
    2,977 Super User 2026 Season 1 on at

    Hi,

    As other experts have already mentioned, the only practical solution is to remove the field entirely from the extension where it is no longer needed.

    For future development, it’s best practice to add one extension as a dependency in the app.json of the other. This way, if both define a field with the same name, you’ll get a compile-time error instead of discovering it post-deployment. It also helps ensure consistent schema ownership across apps.

    Hope this helps.
    Aman K

  • Y_A Profile Picture
    429 on at
    Hi all, 
    Thanks for your input - much appreciated. 
     
    We are having some difficulties to remove the field - when we remove the field completely from the extension (i.e. remove the code), submission to AppSource fails saying that the field present in the previous version is now missing. 
     
    How can we achieve the complete removal of the field, please? 
     
  • Suggested answer
    Jainam M. Kothari Profile Picture
    15,666 Super User 2026 Season 1 on at

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Stars!

Congratulations to our 2025 Community Spotlights

Thanks to all of our 2025 Community Spotlight stars!

Leaderboard > Small and medium business | Business Central, NAV, RMS

#1
OussamaSabbouh Profile Picture

OussamaSabbouh 2,161 Super User 2026 Season 1

#2
YUN ZHU Profile Picture

YUN ZHU 1,046 Super User 2026 Season 1

#3
Dhiren Nagar Profile Picture

Dhiren Nagar 932 Super User 2026 Season 1

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans