I have had an interesting experience with one upgrade recently. While upgrading this customer’s GP to GP2015 R2, version check failed for one particular product. After going through the tables and SET file, I learned that the product in question was not part of DYNAMICS.SET and was not physically present in GP application folder. However, the SQL objects were very much present and DU tables had records for this product with quite an old version.
Customer informed that the previous implementer had installed this product, however in due course they realised that it was not required at all. Product was removed from the application environment, so there won’t be any necessary interference, however SQL objects and records remained.
It was a pain to clean up the records and continue with the upgrade process.
Beware of all possible scenarios and plan the upgrades well.