Skip to content

Version Compatibility

Version Compatibility

Framework Versions

Please see INGenious Version History for the version table of releases.

Plugin Compatibility Requirements

Component Requirement Why
Java Compiler Java 17 or lower Framework JVM runs Java 17; cannot load bytecode from newer Java versions
Playwright Version 1.50.0 (same as framework) Must use same version to avoid NoSuchMethodError
API Version Match framework's API version Ensures interface compatibility

Java Version Compatibility Matrix

User's JRE/JVM Main App and API Java Version Plugin Java Version Result Notes
17 17 17 Recommended All components match; full compatibility
17 17 11 ✅ Works Plugin limited to Java 11 features; runs on Java 17 JVM
17 17 21 UnsupportedClassVersionError Plugin compiled with newer Java; cannot load on Java 17 JVM
17 11 17 ⚠️ Works, new features must only be used internally within the plugin If the plugin uses Java 17 features only internally and never exposes them to the main app (e.g., via method signatures, return types, or exceptions), it will generally work—but care must be taken to avoid accidental exposure. IT is recommended to compile plugins for the same or older Java version as the main app.
17 17 8 ✅ Works Plugin limited to Java 8 features; runs on Java 17 JVM
11 17 17 UnsupportedClassVersionError Main App and plugin compiled with newer Java; cannot load on Java 17 JVM
21 17 17 ✅ Works Plugin limited to Java 17 features; runs on Java 21 JVM

Playwright Version Compatibility Matrix

Main App Playwright Version Plugin Playwright Version Result Notes
1.50.0 1.50.0 Recommended Versions match; full compatibility
1.50.0 1.55.0 NoSuchMethodError Plugin may compile and reference newer APIs, but any call to a new API on a Playwright object from the main app will fail at runtime
1.50.0 1.40.0 ✅ Works Plugin uses only older APIs, which are present in the main app

Same pattern applies with appium dependency.

IDE May Suggest APIs Not Available at Runtime

During development, your IDE may show and allow you to use new Playwright APIs if your plugin's dependency is set to a newer version. However, at runtime, only the Playwright version loaded by the main app is actually present. If your plugin tries to use a newer API that does not exist in the main app’s Playwright version (even if the code compiles), it will result in runtime errors such as NoSuchMethodError.

Match Plugin Playwright Version and Use Provided Scope

Always set your plugin's Playwright dependency version to exactly match the main app, and use <scope>provided</scope>. This ensures that what you see in development matches what will work at runtime, and prevents subtle, hard-to-debug errors.