{"record":{"id":"798ee73abbdb78dc","repo":"OpenAPITools/openapi-generator","slug":"invalid-mergeconflictstrategy-value-mergeconf","errorCode":null,"errorMessage":"Invalid mergeConflictStrategy value '\" + mergeConflictStrategy + \"'. Valid values are: WARN, FAIL","messagePattern":"Invalid mergeConflictStrategy value '\" \\+ mergeConflictStrategy \\+ \"'\\. Valid values are: WARN, FAIL","errorType":"exception","errorClass":"MojoExecutionException","httpStatus":null,"severity":"error","filePath":"modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/ValidateMojo.java","lineNumber":303,"sourceCode":"      }\n      MergedSpecBuilder.MergeMode resolvedMergeMode;\n      try {\n        resolvedMergeMode = MergedSpecBuilder.MergeMode.valueOf(mergeMode.toUpperCase(Locale.ROOT));\n      } catch (IllegalArgumentException e) {\n        throw new MojoExecutionException(\"Invalid mergeMode value '\" + mergeMode\n            + \"'. Valid values are: REF, DEEP\");\n      }\n\n      MergedSpecBuilder builder = new MergedSpecBuilder(inputSpecFiles, mergedFileOutputDir.getAbsolutePath(),\n          mergedFileName, mergedFileInfoName, mergedFileInfoDescription, mergedFileInfoVersion, auth)\n          .withMergeMode(resolvedMergeMode);\n\n      if (resolvedMergeMode == MergedSpecBuilder.MergeMode.DEEP) {\n        try {\n          builder.withConflictStrategy(\n              MergedSpecBuilder.MergeConflictStrategy.valueOf(mergeConflictStrategy.toUpperCase(Locale.ROOT)));\n        } catch (IllegalArgumentException e) {\n          throw new MojoExecutionException(\"Invalid mergeConflictStrategy value '\" + mergeConflictStrategy\n              + \"'. Valid values are: WARN, FAIL\");\n        }\n      }\n\n      String mergedSpec = builder.buildMergedSpec();\n      LOGGER.info(\"Merged input spec from explicit file list: {}\", mergedSpec);\n      return Optional.of(mergedSpec);\n    }\n\n    // Directory scan mode\n    Optional<String> mergedSpec = Optional.empty();\n    if (StringUtils.isNotBlank(inputSpecRootDirectory)) {\n      inputSpecRootDirectory = replaceBackslashesToSlashes(inputSpecRootDirectory);\n\n      MergedSpecBuilder.MergeMode resolvedMergeMode;\n      try {\n        resolvedMergeMode = MergedSpecBuilder.MergeMode.valueOf(mergeMode.toUpperCase(Locale.ROOT));\n      } catch (IllegalArgumentException e) {","sourceCodeStart":285,"sourceCodeEnd":321,"githubUrl":"https://github.com/OpenAPITools/openapi-generator/blob/fcec517be3cf5b7964296bcba25fbc97541484e7/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/ValidateMojo.java#L285-L321","documentation":"Thrown in ValidateMojo.mergeInDirectory's file-list branch when mergeMode resolved to DEEP and MergeConflictStrategy.valueOf(mergeConflictStrategy.toUpperCase(Locale.ROOT)) throws IllegalArgumentException — the <mergeConflictStrategy> is neither WARN nor FAIL (case-insensitive, untrimmed). Consistent with the generate goal, the strategy is only validated when deep merging is active.","triggerScenarios":"Validate goal with <inputSpecFiles>, <mergeMode>DEEP</mergeMode>, and an invalid conflict strategy such as \"THROW\", \"ignore\", or \" WARN\". The same bad value under REF mode never triggers this error.","commonSituations":"Enabling deep merge for validation of merged multi-file specs and guessing strategy names; values supplied via -DmergeConflictStrategy=... in pipelines differing from the POM default; whitespace introduced during XML editing.","solutions":["Set <mergeConflictStrategy>WARN</mergeConflictStrategy> or <mergeConflictStrategy>FAIL</mergeConflictStrategy>.","Trim whitespace from the value; the lookup uppercases but does not trim.","Share the merge settings with the generate goal via plugin-level <configuration> to keep both consistent."],"exampleFix":"<!-- before -->\n<mergeMode>DEEP</mergeMode>\n<mergeConflictStrategy>THROW</mergeConflictStrategy>\n\n<!-- after -->\n<mergeMode>DEEP</mergeMode>\n<mergeConflictStrategy>FAIL</mergeConflictStrategy>","handlingStrategy":"validation","validationCode":"CS=$(mvn -q help:evaluate -Dexpression=mergeConflictStrategy -DforceStdout 2>/dev/null)\necho \"$CS\" | tr -d '[:space:]' | tr '[:lower:]' '[:upper:]' | grep -qx '\\(WARN\\|FAIL\\)' || {\n  echo \"mergeConflictStrategy must be WARN or FAIL (got '$CS')\"; exit 1;\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Validate mergeConflictStrategy even while in REF mode — the plugin only checks it under DEEP, so a typo stays hidden until you switch.","Use WARN during exploration and FAIL once merged specs are considered authoritative.","Document the two valid values next to the property in your POM comments."],"tags":["openapi-generator","maven","plugin-config","spec-merging","invalid-enum-value"],"backgroundTag":"invalid-config-value","analyzedSha":"fcec517be3cf5b7964296bcba25fbc97541484e7","analyzedAt":"2026-08-22T11:13:11.613Z","schemaVersion":2},"datasetVersion":"2026-08-22T14:17:55.899Z"}