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

Comments (8)

  1. Johannes Wikman says:

    Thanks Jorge for the detailed explanation!

    I've asked for this for some time now, this will be very helpful. We've had some issues where there accidently have been different builds on client and server with some really strange behavior as a result.

    Best regards,

    Johannes

  2. Tvis says:

    I assume this functionality will not be made available for NAV 2013 as only 2015/NAV 2013 R2 are mentioned?

  3. Poul Christiansen says:

    Hi I really like the fact that you give us the opportunity to manage our installations, but it would be really great if we knew which "internal contract version no." each client, server, webclient etc. is running, we would be able to plan ahead and provide better advise for our clients.

    Just as we can see the client build, we would also like to be able to see the "internal contract no.".

  4. @Tvis – What you understood is correct. This functionality is yet not be available for NAV 2013 and only for NAV 2013 R2 & NAV 2015.

    @Poul Christiansen- We will see what we can do to document the different interface versions.

  5. Brian HL says:

    The client should be able to detect that there is a new version also instalere the new version automatically from aplikationsserveren. So the problem is solved.

  6. Johannes Sebastian at Agidon.dk says:

    "Brian HL" : Now we're talking! 🙂

  7. Taddeo says:

    Hi,

    This new feature is not working for me…. I apply recently CU 20 for NAV 2013 R2 to a customer. Now I applied CU 21 only on the server side and I selected AlwaysConnect but the the client is now complaining about the different build number????

    Am I missing something or Microsoft broke this feature in one of the latest updates?

    Thanks!!!

  8. @Taddeo – Notice the description ("….if the interface is compatible"):

    •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.

    The interfaces between CU 20 & CU 21 are incompatible, and therefore you need to have CU 21 clients (or compatible upper versions) to connect to a server based on CU 21.

Skip to main content