Not eligible for use with Ignition Maker Edition

Hi All,

A while ago I developed a custom perspective module following the example at:

https://github.com/inductiveautomation/ignition-sdk-examples/tree/ignition-8.3/perspective-component

It was working without any issues in Ignition 8.1 Maker Edition.

When I tried to install it on Ignition 8.3 Maker Edition I get the following error.

I tried adding the @Override public boolean isMakerEditionCompatible() { return true; } to GatewayHook but that didn’t fix the problem.

Can you guide me on how to tackle this?

Thank you,

com.inductiveautomation.ignition.common.modules.ModuleLoadException: Not eligible for use with Ignition Maker Edition
	at com.inductiveautomation.ignition.gateway.modules.ModuleInstance.setup(ModuleInstance.java:645)
	at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.runStartupPhase(ModuleManagerImpl.java:499)
	at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.setup(ModuleManagerImpl.java:441)
	at com.inductiveautomation.ignition.gateway.IgnitionGateway.startupInternal(IgnitionGateway.java:1287)
	at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl.startup(RedundancyManagerImpl.java:352)
	at com.inductiveautomation.ignition.gateway.IgnitionGateway.initRedundancy(IgnitionGateway.java:814)
	at com.inductiveautomation.ignition.gateway.IgnitionGateway.lambda$initInternal$1(IgnitionGateway.java:736)
	at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:550)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

That should be all that is needed. Are you sure you are running the version that includes this change?

I’m sure that cleaned the project and build it from scratch after overriding the isMakerEditionCompatible().

Do I need to switch to the new Ignition 8.3 example to get the new gradle/other configs? Do they have affect on the compilation target?

You absolutely need to build with the resources from 8.3 and with a minimum of v8.3.0 in module.xml. If those are the problem, I'd expect a different error, but that might be a bug.

(I don't use Maven or Gradle, so cannot help with specifics of your build.)

Do I need to maintain two different code bases for backward compatibility? Our clients use a mix of versions from 7.9 to 8.3 for now.

You should have a branch per Ignition version you support.

2 Likes

I use git branches in my repos.

(There's no Perspective in v7.9.)

After developing my add-on using the new SDK examples, and after some thorough investigation and testing, I figured out the error is related to the requiredIgnitionVersion setting in the project.

While the error message says “Not eligible for use with Ignition Maker Edition”, it is actually not related to the GatewayHook.isMakerEditionCompatible override.

Here are my test results:

As you can see, the error is not true to what is really going on.

Moreover, my add-on doesn’t require any new features that are introduced in 8.3.

For the sake of compatibility, I would like to set the requiredIgnitionVersion value to “8.1.0” and use the same .modl file on both Ignition versions.

Can you please help fix this error prompt and help me achieve backwards compatibility?

Thank you.

This will not work, heed the advice from earlier on in this thread about having a branch for each version. There are a lot of differences in the SDK between the versions and the dependencies that are part of each.

1 Like

There is a small bug here where if loading your module fails because of the version mismatch it is later misidentified as being not compatible with maker edition and the failure reason gets overwritten.

You must fix the required Ignition version mismatch. This check is supposed to be there. All that would change with the bug fixed is you would get the correct error message.

2 Likes

I understand your desire. I did this for years when I first started making modules. It hasn't been possible since v7.9 came out.

Make branches in your repo.

Pull into build environments that have the right java versions to build properly. (I currently maintain both jdk11 and jdk17 in my workstation so I can build for v8.1 and v8.3, in different local folders pointing at the separate branches.)

1 Like

FWIW this issue came up last year in an Embr thread:

1 Like