Introducing a build version check between NST and Windows and Web clients

Have you ever wonder what ‘The client version does not match the server version. You can only connect to a server with a matching version.‘ error message really means? Since the error message shows the file (build) versions of the client and server it has been speculated that only clients and servers of the same build can connect, which is not the case. What really happens is that we have a communication interface between Microsoft Dynamics NAV Server and clients that has an internal version number which we change when this contract is broken (interface is changed so that it is not compatible anymore), and in that case the versions will not match and you will receive this error.

So, people has asked us why we don’t change this version every time we deliver a Cumulative Update. Well, there is really no reason, as this would force all the installation to be changed simultaneously and also would snatch the opportunity to just update one side of the installation (for instance the Microsoft Dynamics NAV Windows client) without interrupting the rest of the system. I would recommend people to indeed only run on the same build as there could be some fixes that are thought to be on the Windows client, which are actually fixed on the server side (so there would be the impression that the issue is still present when only updating the client).

We would like to help all installations types, and therefore we are introducing a new setting from Cumulative Update 2 for Microsoft Dynamics NAV 2015 & Cumulative Update 14 for Microsoft Dynamics NAV 2013 R2 which would allow you to decide what will happen when the file (build) version does not match. This does not mean that we have gotten rid of the interface version, which give us now 5 different possibilities, which I will elaborate on later on.

I must start by clarifying that because we actually needed to change the interface we will get an error (client version does not match the server version) when combining builds from CU 2/CU 14 to pre CU 2/CU 14.

The new Server setting is called ClientBuildRestriction, and it has three possible values: AlwaysConnect, WarnClient and DoNotAllow (the default setting is WarnClient). The behavior being:

  • AlwaysConnect – This will work exactly as it has been working until now. If the interface is compatible we will allow the client to connect regardless if the build versions match between them or not.
  • WarnClient (default) – If the build versions match between server & client, connect as always (implicit that the interface is the same), else, show a warning (The build version of your Microsoft Dynamics NAV client or the Microsoft Dynamics NAV web server components is different from the build version of the Microsoft Dynamics NAV Server instance that you connect to. However, your connection works.) and connect as before.
  • DoNotAllow – If the build versions match between server & client (implicit that the interface is the same), connect as always, else, refuse the connection (the error is the same as when the interface does not match).

So, what are the 5 different possibilities I have referred to before?

  • Build versions are the same (Microsoft Dynamics NAV Server and client) – Connect without any error or warning regardless of the new setting (if present) on the server.
  • Build version are different because we have a pre CU 2/CU 14 and a CU 2/CU 14 or above – Error (as before) regardless of the new setting (if present) on the server (due to the interface version being different).
  • (3 variants) Build version are different because we have a CU 2/CU 14 and a post CU 2/CU 14, then we need to refer to the 3 server settings as described before.

If you reflect about what I have just written, this new setting will not help at all until we release another post CU 2/CU 14 release that you can combine “useful” builds with.

We hope that this new server setting will help you manage better your installations.

Best regards

Jorge from the NAV team