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

Appsource validation fails for BC25 because a page extension targets a page that is no longer there

(3) ShareShare
ReportReport
Posted on by 6
Hello there,

We have an app on appsource that contains a page extension that targets the page "General Ledger Entries Apply" (I believe it is part of Dutch localization). Since that page will be removed from the base app in BC25, I want to set our page extension for that page to obsoletestate = pending, so we can remove it by the time. Since the first of this month, appsource validates the app on both BC24 as wel as BC25. Validation for BC24 goes well, but for BC25 it errors with the message that the page "General Ledger Entries Apply" does not exist. Which is true, because it has been removed in that version. 

So I thought, I change the target of our own page extension to another page, but that is considered a breaking change. This page extension is a kind of a catch-22: can't delete it, can't change it and I cannot leave it as it is...
 
Does anyone know a way to fix this?
 
Best regards,
Roel

 
I have the same question (2)
  • Suggested answer
    Kamal Khakhkhar Profile Picture
    3,357 on at
    Hii there ,
    You can try the base function of clean .
     
    #If not CLEAN25 
    //Your code for v24
    #else
    // Your code for v25
    #endif
     
    Please try this.
    If you found your reference. Please mark it answered.
    Thank You.
    Kamal Khakhkhar 
  • mbazioss Profile Picture
    72 on at
    I came into an issue almost the same as the above during this period, when microsoft validates appsource apps for version BC26 AND BC27.
    In our app we have a chartpart in a specific page which can compile in BC Version 26.
    The same code does not compile in BC Version 27 because chartparts are totally removed.
    When i remove the chartpart from BC version 26 then i cannot upload into appsource because it fails with 
    The chartpart with name 'xxx' defined in Page 'yyy' was found in the previous version, but is missing in the current extension.
    Is it somehow possible to surpass this issue?
    If so can you share sample code?
     
    Thanks in advance,
     
    PS: I tried the sample code but dont really understand how in the same app.json i can set preprocesssymbols for 2 versions.
  • Suggested answer
    Sahan Hasitha Profile Picture
    2,683 on at
    hi
     
    You can handle this by combining ObsoleteState = Pending with conditional compilation. In BC24, keep your page extension against “General Ledger Entries Apply” and mark it as obsolete so partners/customers are warned. For BC25, since the page no longer exists, wrap the extension inside a #if BC24 … #endif preprocessor directive so it only compiles for BC24 and is excluded for BC25. This avoids AppSource validation errors while also preparing for the eventual removal.
  • mbazioss Profile Picture
    72 on at
    I tried above approach by using 
                  
    #if BC26
                    chartpart("38-08"; "38-08")
                    {
                        ApplicationArea = All;
                        Visible = false;
                        ObsoleteState = Pending;
                    }
    #endif
    for the chartpart case, but still get following issue during appsource validation.
    The chartpart with name 'XXX' defined in Page 'YYY' was found in the previous version, but is missing in the current extension. This will break dependent extensions.
     
    Please mind that in BC27 chartparts are totally removed.
  • Suggested answer
    Nimsara Jayathilaka. Profile Picture
    5,120 Super User 2026 Season 1 on at
    HI
     
    • You cannot simply change the target page of your page extension because that causes a breaking change.
    • Also, deleting the page extension immediately is not allowed as it breaks backward compatibility.
    • The correct way is to mark your page extension as obsolete using the property ObsoleteState = Pending; while keeping the extension code intact for now.
    • This tells the system and appsource that this extension is planned for removal and will allow validation to pass on BC25.
    • Once dependent extensions and users no longer rely on this extension, you can then safely remove the page extension in a future version.
    • This gradual deprecation approach avoids breaking your extension compatibility while addressing the removal of the target page in BC25.
     
    Thanks
    Nimsara
  • mbazioss Profile Picture
    72 on at
    I moved my question to following thread to avoid confusion between cases

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!

Meet the Microsoft Dynamics 365 Contact Center Champions

We are thrilled to have these Champions in our Community!

Congratulations to the April Top 10 Community Leaders

These are the community rock stars!

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

#1
OussamaSabbouh Profile Picture

OussamaSabbouh 2,140 Super User 2026 Season 1

#2
YUN ZHU Profile Picture

YUN ZHU 1,362 Super User 2026 Season 1

#3
AndrewThomas81 Profile Picture

AndrewThomas81 1,216

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans