With every major release, there comes a period where sometimes we need to publish apps on the store in two different versions: one which uses events and features only present in the new major, and one which is still compatible with the old major.
This is because customers have 60+ days in order to plan their upgrade to the new major, so for example, we have customers on SaaS environments both on BC21.x and on BC22.y.
What happens if we add new objects or new public entities to our app, in both versions, AFTER we have uploaded a BC22 compatible app?
The BC21 app gets validated against the "NEXT" version, which to AppSource is the first available version of the BC22 app.
Of course, the initial version of the BC22 app didn't contain the new objects / procedures / whatever, so we get a validation error because of the "breaking changes" that the first version for BC22 has when compared to the latest version of BC21.
Note that upgrades work flawlessly, and the error is only during the validation process.
We as an ISV think that the latest version for BC21 should be validated against the latest version for BC22.
Microsoft doesn't agree, and suggested that the new objects / etc. on the BC21 app should be introduced as obsolete, in order not to raise validation errors.
We think marking them as obsolete would be confusing to developers that customise our apps.
The alternative is not to publish versions for BC21 altogether. We wouldn't want this, as the BC21 version for OnPrem would still be developed in parallel to the BC22 one, and what if we need to publish a fix also for SaaS?
Please validate apps against the latest available version, since it will be the one that will be installed after major/minor upgrades starting from this CU!