kestra-io/kestra · error · IllegalArgumentException

Invalid artifact filename '{}', expected format is <groupId>

Error message

Invalid artifact filename '{}', expected format is <groupId>__<artifactId>[__<classifier>]__<version>.jar

What it means

Error "Invalid artifact filename '{}', expected format is <groupId>__<artifactId>[__<classifier>]__<version>.jar" thrown in kestra-io/kestra.

Source

Thrown at core/src/main/java/io/kestra/core/plugins/PluginArtifact.java:106

            m.group(1),
            m.group(2),
            Optional.ofNullable(m.group(4)).filter(not(String::isEmpty)).orElse(JAR_EXTENSION),
            Optional.ofNullable(m.group(6)).filter(not(String::isEmpty)).orElse(null),
            "LATEST".equalsIgnoreCase(m.group(7)) ? "LATEST" : m.group(7),
            null
        );
    }

    /**
     * Static helper method for constructing a new {@link PluginArtifact} from an artifact a file name.
     *
     * @param fileName The artifact's file name
     * @return a new {@link PluginArtifact}.
     */
    public static PluginArtifact fromFileName(final String fileName) {
        Matcher matcher = FILENAME_PATTERN.matcher(fileName);
        if (!matcher.matches()) {
            throw new IllegalArgumentException("Invalid artifact filename '" + fileName + "', expected format is <groupId>__<artifactId>[__<classifier>]__<version>.jar");
        }

        String[] parts = fileName.substring(0, fileName.lastIndexOf(".")).split("__");

        String groupId = parts[0].replace("_", ".");
        String artifactId = parts[1];
        String version;
        String classifier = null; // optional
        if (parts.length == 4) {
            classifier = parts[2];
            version = parts[3].replace("_", ".");
        } else {
            version = parts[2].replace("_", ".");
        }
        return new PluginArtifact(groupId, artifactId, "jar", classifier, version, null);
    }

    public PluginArtifact relocateTo(URI uri) {

View on GitHub (pinned to 823fada927)

Solutions

  1. Rename the artifact file to the expected format <groupId>__<artifactId>[__<classifier>]__<version>.jar, e.g. io.kestra.plugin__plugin-jdbc__1.0.0.jar.

When it happens

Trigger: Thrown at core/src/main/java/io/kestra/core/plugins/PluginArtifact.java:106 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of kestra-io/kestra@823fada927 (2026-08-14). Data as JSON: /api/errors/cad0f4215c740b16. Report an issue: GitHub.