conductor-oss/conductor · error · RuntimeException
protogen configuration incomplete, please provide all requir
Error message
protogen configuration incomplete, please provide all required (8) inputs
What it means
Thrown as RuntimeException by ProtoGenTask.main when args is null or has fewer than 8 elements. The tool requires exactly 8 positional inputs: protoPackage, javaPackage, goPackage, protosDir, mapperDir, mapperPackage, sourceJar, sourcePackage. Fewer than 8 means configuration is incomplete, so it aborts before doing any work.
Source
Thrown at annotations-processor/src/main/java/com/netflix/conductor/annotationsprocessor/protogen/ProtoGenTask.java:107
public void setSourcePackage(String sourcePackage) {
this.sourcePackage = sourcePackage;
}
public void generate() {
ProtoGen generator = new ProtoGen(protoPackage, javaPackage, goPackage);
try {
generator.processPackage(sourceJar, sourcePackage);
generator.writeMapper(mapperDir, mapperPackage);
generator.writeProtos(protosDir);
} catch (IOException e) {
System.err.printf("protogen: failed with %s\n", e);
}
}
public static void main(String[] args) {
if (args == null || args.length < 8) {
throw new RuntimeException(
"protogen configuration incomplete, please provide all required (8) inputs");
}
ProtoGenTask task = new ProtoGenTask();
int argsId = 0;
task.setProtoPackage(args[argsId++]);
task.setJavaPackage(args[argsId++]);
task.setGoPackage(args[argsId++]);
task.setProtosDir(new File(args[argsId++]));
task.setMapperDir(new File(args[argsId++]));
task.setMapperPackage(args[argsId++]);
task.setSourceJar(new File(args[argsId++]));
task.setSourcePackage(args[argsId]);
System.out.println("Running protogen with arguments: " + task);
task.generate();
System.out.println("protogen completed.");
}
@OverrideView on GitHub (pinned to cf7c3e4a8a)
Solutions
- Provide all 8 positional args in order: protoPackage javaPackage goPackage protosDir mapperDir mapperPackage sourceJar sourcePackage.
- If invoking via Gradle, audit the args = [...] list in the JavaExec/protogen task for length 8.
- Print the resolved task.toString() (already logged after parsing) to confirm each field is non-null.
Example fix
// before java -cp protogen.jar com.netflix.conductor.annotationsprocessor.protogen.ProtoGenTask \ cond.api cond.proto // after java -cp protogen.jar com.netflix.conductor.annotationsprocessor.protogen.ProtoGenTask \ cond.api cond.proto cond.go ./protos ./mapper com.example.mapper ./app.jar com.example.api
Defensive patterns
Strategy: validation
Validate before calling
if (args == null || args.length < 8) {
throw new IllegalArgumentException(
"Usage: ProtoGenTask <protoPackage> <javaPackage> <goPackage> " +
"<protosDir> <mapperDir> <mapperPackage> <sourceJar> <sourcePackage>");
}
// Prefer explicit named flags in a real CLI, e.g. --protoPackage=... Prevention
- Pass all 8 positional args in the documented order.
- Audit Gradle JavaExec args lists for length 8 after refactors.
- Log task.toString() after parsing to confirm each field is non-null.
When it happens
Trigger: Invoking the ProtoGenTask main/CLI with fewer than 8 arguments, or wiring a Gradle/Gradle-plugin exec task that passes a truncated argument list.
Common situations: Misconfigured build task that omits one of the 8 args (commonly goPackage or mapperPackage); a refactor of the argument order leaving a slot empty; running the jar manually without the full arg set.
Related errors
- missing Jar file
- Skill registry is not available
- llmProvider not specified: {name}
- no configuration found for: {name}
- Bad/Unsupported schema? : {validationMessages}
AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14).
Data as JSON: /api/errors/dabcbc7854cbcfa9.
Report an issue: GitHub.