ex4 has newer unsupported version, please update your client terminal

 

Journal tab: 

2016.02.05 09:37:18.384    [ea name] has newer unsupported version, please update your client terminal

And experts tab:

2016.02.05 09:37:18.384 cannot load 'C:\0Metatrader 4\Exness 1\MQL4\Experts\!CleverTrader Enterprise.ex4'
2016.02.05 09:37:18.384 !CleverTrader Enterprise: has newer unsupported version, please update your client terminal


The ea was compiled with b950.  The terminal being used was b902.  Is this intentional behavior by MQ to not allow newer EAs (compiled on newer mt4 builds) to be used on older mt4 terminal builds?   Is there a way to specify that the EA is ok to be used on older versions?  (user must manually specify compatibility with older versions).

That is quite odd, if all of the functions work ok.

 

This is a complete mess of Metaquotes, which cost me a lot of time. There is no forward&backward table of compatibility between compilers and terminals. If you ask for it, silence replies.

My observation is, that build 920 was the breaking point (anyway, one of the buggiest releases). 920 compiler created scripts incompatible backward (with 910 exception), and also many older scripts did not work without recompilation. Surprisingly, build 910 was the one, which was able to run both 920 and 902 compilations. Later, builds following 920 (not sure if all) were able to run the older scripts again, so it seemed to be rather a bug in 920 than intended forward incompatibility.

So., my best guess, the backward compatibility for the current compiler goes to 910 only.

 
I compiled the ea that I noticed the error in b840 metaeditor and it worked in later builds without a problem.
 
4evermaat: The ea was compiled with b950.  The terminal being used was b902.  Is this intentional behavior by MQ to not allow newer EAs (compiled on newer mt4 builds) to be used on older mt4 terminal builds? 

Yes it is intentional. Changes to 950 can not be supported by 902.

Compile with 902 and you can run on either.

Forward compatibility usually, backwards usually never. Do you think you could take a modern engine and put it in a model T and it would work? Gear train designed for 20HP. Body designed for top speed of 45 mph. Gasoline with lead. Etc.

 
WHRoeder:

Yes it is intentional. Changes to 950 can not be supported by 902.

Compile with 902 and you can run on either.

Forward compatibility usually, backwards usually never. Do you think you could take a modern engine and put it in a model T and it would work? Gear train designed for 20HP. Body designed for top speed of 45 mph. Gasoline with lead. Etc.

The fact that I could compile on an earlier build and it works instantly proves that it is a compiling bug and nothing else.  The functions are 100% the same.  MQ did something to intentionally reduce the possibility of it working...perhaps a different encryption during compiling?  Anyway MQ confirmed something similar (they changed the compiling mechanism slightly and intentionally made script use backwards incompatible)....like planned obsolescence.
 
4evermaat: The fact that I could compile on an earlier build and it works instantly proves that it is a compiling bug and nothing else. 

Wong. It proves you didn't even try to understand the difference between forward compatible (your "compile on an earlier build") and backward compatible ("compiled with b950.  The terminal being used was b902")

Try running your 902 build on a 800

Reason: