{"record":{"id":"dabcbc7854cbcfa9","repo":"conductor-oss/conductor","slug":"protogen-configuration-incomplete-please-provide","errorCode":null,"errorMessage":"protogen configuration incomplete, please provide all required (8) inputs","messagePattern":"protogen configuration incomplete, please provide all required \\(8\\) inputs","errorType":"validation","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"annotations-processor/src/main/java/com/netflix/conductor/annotationsprocessor/protogen/ProtoGenTask.java","lineNumber":107,"sourceCode":"\n    public void setSourcePackage(String sourcePackage) {\n        this.sourcePackage = sourcePackage;\n    }\n\n    public void generate() {\n        ProtoGen generator = new ProtoGen(protoPackage, javaPackage, goPackage);\n        try {\n            generator.processPackage(sourceJar, sourcePackage);\n            generator.writeMapper(mapperDir, mapperPackage);\n            generator.writeProtos(protosDir);\n        } catch (IOException e) {\n            System.err.printf(\"protogen: failed with %s\\n\", e);\n        }\n    }\n\n    public static void main(String[] args) {\n        if (args == null || args.length < 8) {\n            throw new RuntimeException(\n                    \"protogen configuration incomplete, please provide all required (8) inputs\");\n        }\n        ProtoGenTask task = new ProtoGenTask();\n        int argsId = 0;\n        task.setProtoPackage(args[argsId++]);\n        task.setJavaPackage(args[argsId++]);\n        task.setGoPackage(args[argsId++]);\n        task.setProtosDir(new File(args[argsId++]));\n        task.setMapperDir(new File(args[argsId++]));\n        task.setMapperPackage(args[argsId++]);\n        task.setSourceJar(new File(args[argsId++]));\n        task.setSourcePackage(args[argsId]);\n        System.out.println(\"Running protogen with arguments: \" + task);\n        task.generate();\n        System.out.println(\"protogen completed.\");\n    }\n\n    @Override","sourceCodeStart":89,"sourceCodeEnd":125,"githubUrl":"https://github.com/conductor-oss/conductor/blob/cf7c3e4a8adfb158be778ab1ec525323c363cd3a/annotations-processor/src/main/java/com/netflix/conductor/annotationsprocessor/protogen/ProtoGenTask.java#L89-L125","documentation":"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.","triggerScenarios":"Invoking the ProtoGenTask main/CLI with fewer than 8 arguments, or wiring a Gradle/Gradle-plugin exec task that passes a truncated argument list.","commonSituations":"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.","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."],"exampleFix":"// before\njava -cp protogen.jar com.netflix.conductor.annotationsprocessor.protogen.ProtoGenTask \\\n  cond.api cond.proto\n// after\njava -cp protogen.jar com.netflix.conductor.annotationsprocessor.protogen.ProtoGenTask \\\n  cond.api cond.proto cond.go ./protos ./mapper com.example.mapper ./app.jar com.example.api","handlingStrategy":"validation","validationCode":"if (args == null || args.length < 8) {\n    throw new IllegalArgumentException(\n        \"Usage: ProtoGenTask <protoPackage> <javaPackage> <goPackage> \" +\n        \"<protosDir> <mapperDir> <mapperPackage> <sourceJar> <sourcePackage>\");\n}\n// Prefer explicit named flags in a real CLI, e.g. --protoPackage=...","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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."],"tags":["protogen","build","configuration","cli"],"backgroundTag":null,"analyzedSha":"cf7c3e4a8adfb158be778ab1ec525323c363cd3a","analyzedAt":"2026-08-14T03:33:19.897Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}