{"record":{"id":"3d9e47097a9ebc5d","repo":"apache/beam","slug":"missing-required-value-for-group-group-at-least-one-of-the","errorCode":null,"errorMessage":"Missing required value for group [<group>]. At least one of the following properties <properties> required. Run with --help=<class> for more information.","messagePattern":"Missing required value for group \\[<group>\\]\\. At least one of the following properties <properties> required\\. Run with --help=<class> for more information\\.","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"sdks/java/core/src/main/java/org/apache/beam/sdk/options/PipelineOptionsValidator.java","lineNumber":111,"sourceCode":"            checkArgument(\n                handler.invoke(asClassOptions, method, null) != null,\n                \"Missing required value for [--%s, \\\"%s\\\"]. \",\n                handler.getOptionName(method),\n                getDescription(method));\n          } else {\n            checkArgument(\n                handler.invoke(asClassOptions, method, null) != null,\n                \"Missing required value for [%s, \\\"%s\\\"]. \",\n                method,\n                getDescription(method));\n          }\n        }\n      }\n    }\n\n    for (String requiredGroup : requiredGroups.keySet()) {\n      if (!verifyGroup(handler, asClassOptions, requiredGroups.get(requiredGroup))) {\n        throw new IllegalArgumentException(\n            \"Missing required value for group [\"\n                + requiredGroup\n                + \"]. At least one of the following properties \"\n                + Collections2.transform(\n                    requiredGroups.get(requiredGroup), ReflectHelpers::formatMethod)\n                + \" required. Run with --help=\"\n                + klass.getSimpleName()\n                + \" for more information.\");\n      }\n    }\n\n    return asClassOptions;\n  }\n\n  private static boolean verifyGroup(\n      ProxyInvocationHandler handler, PipelineOptions options, Collection<Method> requiredGroup) {\n    for (Method m : requiredGroup) {\n      if (handler.invoke(options, m, null) != null) {","sourceCodeStart":93,"sourceCodeEnd":129,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/core/src/main/java/org/apache/beam/sdk/options/PipelineOptionsValidator.java#L93-L129","documentation":"PipelineOptionsValidator found a @Validation.Required group (@Validation.Group annotation) whose properties are all unset. At least one property in the group must be given; the error names the group, its properties, and points to --help=<class>. Thrown from PipelineOptionsValidator.validate().","triggerScenarios":"Validating options whose interface declares a required group, e.g. @Validation.Required groups like GCS/BigQuery options, without setting any member property, via Pipeline.create(options) or validateCli.","commonSituations":"Launching a Dataflow pipeline without specifying project/region/stagingLocation group members; refactor removed the option that satisfied the group; templating left all group members empty.","solutions":["Set at least one required property of the named group before validation","Run --help=<class> to see which properties satisfy the group","Adjust the @Validation.Group declaration if the requirement is outdated"],"exampleFix":"// before\nDataflowPipelineOptions opts = PipelineOptionsFactory.as(DataflowPipelineOptions.class);\nPipeline.create(opts); // group properties unset\n// after\nopts.setProject(\"my-project\");\nopts.setRegion(\"us-central1\");\nopts.setStagingLocation(\"gs://bucket/staging\");\nPipeline.create(opts);","handlingStrategy":"validation","validationCode":"Set<Method> groupMembers = groupPropsOf(MyOptions.class); // from @Validation.Group\nif (groupMembers.stream().allMatch(m -> safeGet(opts, m) == null)) throw new IllegalStateException(\"required group unset\");","typeGuard":null,"tryCatchPattern":"try { PipelineOptionsValidator.validate(cli, opts); } catch (IllegalArgumentException e) { log.error(\"Required group missing: {}\", e.getMessage()); }","preventionTips":["Call PipelineOptionsValidator.validate early at startup","Document required groups in your launch scripts","Set at least one member of every declared group in deployment configs"],"tags":["java","apache-beam","validation","required-options","dataflow"],"backgroundTag":"missing-required-argument","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}