I came into the office one weekend not long ago to do an upgrade for a client. The client had been operating GP 10.0, and we were upgrading them to GP 2015 R2. We already had the test environment completed and passed through UAT; the only thing left to do was take a backup of their 10.0 databases from the old server, bring them over to the soon-to-be-live UAT environment, run them through GP 2013 Utilities, and finally, GP 2015 Utilities.
Everything was going smoothly – I’d taken the backup, restored the databases, and gone through GP 2013 Utilities. However, I found that when I started up GP 2015 Utilities, I got the following error which many of you have probably seen before:
“There was a problem ascertaining product version information. Microsoft Dynamics GP Utilities will now exit. Check DUinstall.log for more information”.
Sure enough, when I checked out the duinstall.log in the Data file under the GP installation folder, I found a series of errors such as the following, indicating a problem with upgrading from GP 10.0:
“Failure encountered ON 12/10/2016 at 1:23:39 PM. Error: Product 0 does not support upgrading from version 10.0.1868.”
Now here was a puzzler. I’d already run GP 2013 Utilities for the product successfully. Why were GP 2015 Utilities still pointing to GP 10.0? Given what had happened, logically it should find GP 12.xx, but nonetheless, it was finding GP 10.0.
I proceeded to dig around in the DYNAMICS database for answers. The DU000020 table, I found, had 16 rows with a ‘versionMajor’ value of 10 and a ‘companyID’ value of -1. All the other records in the table had a version of 12 or higher. This, perhaps, thought I, could be the answer. Like any consultant worth his salt, I took backups of every database. Once this was complete, I then ran a script to update the major and minor versions to 12.xx based on those of companyID -32767.
However, when I re-ran the GP Utilities, it still bombed out with the same errors.
On a whim, I looked in the DB_Upgrade table to see what I would find in there. I noted that this table, too, had some records for version 10, all of which were for the database TWO. It was then that I remembered there had been issues previously with the TWO sample company in GP. For this reason, it had not been fully upgraded when GP 2013 Utilities were run. The first time I’d run Utilities, it failed out, and every subsequent time Utilities needed to be run I had left it out.
The resolution at this point was clear. Since GP has a neat function to re-add the sample company data in Utilities, I deleted the company database to remove it, and then ran the Clear Companies script to take care of the leftover records.
Once I did this, I opened GP 2015 Utilities again, and lo and behold it worked! In retrospect, one clue I had seen was that the “Validating Product Version Information” progress bar that always pops up when you open GP Utilities was erring out near the end of the validation when the progress was almost complete. This made sense, as the TWO company was the last one alphabetically in the database, and therefore would’ve been the last to be analyzed by the version validation process.
If there’s one thing you take away from this story, it would always be to check when upgrading (especially if there are multiple version “hops” involved) to make certain that every company has been fully and successfully upgraded before proceeding onward. This is just one example (and in the end, a fairly harmless one) of what can happen if a database didn’t get fully upgraded. Hopefully, this helps someone else who may be experiencing the same issue.