{"record":{"id":"836e5eb64c661c3b","repo":"HMCL-dev/HMCL","slug":"unsupported-json-patch-s-format-version-d","errorCode":null,"errorMessage":"Unsupported JSON-Patch[%s] format version: %d","messagePattern":"Unsupported JSON-Patch\\[(.+?)\\] format version: (.+?)","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"HMCLCore/src/main/java/org/jackhuang/hmcl/modpack/multimc/MultiMCInstancePatch.java","lineNumber":259,"sourceCode":"     * <p>Core methods transforming MultiMCModpack to Official Version Scheme.</p>\n     *\n     * <p>Most of the information can be transformed in a lossless manner, except for some inputs.\n     * See to do marks below for more information</p>\n     *\n     * @param patches   List of all Json-Patch.\n     * @param instanceId the version ID. Used when constructing a manifest.\n     * @return The resolved instance.\n     */\n    public static ResolvedInstance resolveArtifact(List<MultiMCInstancePatch> patches, GameInstanceID instanceId) {\n        if (patches.isEmpty()) {\n            throw new IllegalArgumentException(\"Empty components.\");\n        }\n\n        for (MultiMCInstancePatch patch : patches) {\n            Objects.requireNonNull(patch, \"patch\");\n\n            if (patch.getFormatVersion() != 1) {\n                throw new UnsupportedOperationException(\n                        String.format(\"Unsupported JSON-Patch[%s] format version: %d\", patch.getID(), patch.getFormatVersion())\n                );\n            }\n        }\n\n        StringBuilder message = new StringBuilder();\n\n        List<String> minecraftArguments;\n        ArrayList<Argument> jvmArguments = new ArrayList<>(Arguments.DEFAULT_JVM_ARGUMENTS);\n        String mainClass;\n        AssetIndexInfo assetIndex;\n        int[] javaMajors;\n        Library mainJar;\n        List<String> traits;\n        List<String> tweakers;\n        /* TODO: MultiMC use a slightly different way to store jars containing jni files.\n            Transforming them to Official Scheme might boost compatibility with other launchers. */\n        List<Library> libraries;","sourceCodeStart":241,"sourceCodeEnd":277,"githubUrl":"https://github.com/HMCL-dev/HMCL/blob/24702dc5a0214034f4c27166d5fd30cad08cec19/HMCLCore/src/main/java/org/jackhuang/hmcl/modpack/multimc/MultiMCInstancePatch.java#L241-L277","documentation":"Each MultiMC JSON-Patch must have formatVersion == 1. resolveArtifact throws UnsupportedOperationException naming the patch UID and its actual format version when a newer/unknown format is encountered.","triggerScenarios":"Importing a MultiMC/Prism instance whose component patch declares formatVersion other than 1 in mmc-pack.json or its patches.","commonSituations":"Instances created by very new launcher versions bumping the format; hand-edited component files with a wrong formatVersion number.","solutions":["Downgrade or fix the component's formatVersion to 1 in the instance files","Update HMCL, which may support newer format versions","Re-export the instance from a launcher producing formatVersion 1 patches"],"exampleFix":"// before\n{ \"formatVersion\": 2, \"uid\": \"net.minecraft\", ... }\n// after\n{ \"formatVersion\": 1, \"uid\": \"net.minecraft\", ... }","handlingStrategy":"validation","validationCode":"boolean allV1 = patches.stream().allMatch(p -> p.getFormatVersion() == 1);\nif (!allV1) throw new UnsupportedOperationException(\"Only JSON-Patch formatVersion 1 is supported\");","typeGuard":null,"tryCatchPattern":"try { resolveArtifact(patches, id); } catch (UnsupportedOperationException e) { /* prompt user to update HMCL */ }","preventionTips":["Check formatVersion in component patches before import","Keep HMCL up to date for newer format support","Avoid editing formatVersion by hand"],"tags":["multimc","json-patch","format-version","unsupported"],"backgroundTag":"unsupported-enum-value","analyzedSha":"24702dc5a0214034f4c27166d5fd30cad08cec19","analyzedAt":"2026-09-10T12:36:46.680Z","contentChangedAt":"2026-09-10T12:36:46.680Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}