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