HMCL-dev/HMCL · error · JsonParseException

CurseFile. cannot be empty.

Error message

CurseFile.{projectID|fileID} cannot be empty.

What it means

Validation of the CurseFile entry inside an MCBBS manifest: projectID or fileID is 0, meaning the CurseForge project/file identifiers were missing. Without them HMCL cannot build the download URL, so the manifest entry is rejected.

Solutions

  1. Fix the manifest entry to include valid nonzero projectID and fileID
  2. Remove the broken CurseFile entry or replace it with a direct URL
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at HMCLCore/src/main/java/org/jackhuang/hmcl/modpack/mcbbs/McbbsModpackManifest.java:350 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of HMCL-dev/HMCL@24702dc5a0 (2026-09-10). Data as JSON: /api/errors/6e825d12ed13e13a. Report an issue: GitHub.

Appendix: source

Thrown at HMCLCore/src/main/java/org/jackhuang/hmcl/modpack/mcbbs/McbbsModpackManifest.java:350

@Override
public void validate() throws JsonParseException, TolerableValidationException {
    super.validate();

    if (projectID == 0 || fileID == 0) {
        throw new JsonParseException("CurseFile.{projectID|fileID} cannot be empty.");
    }
}

View on GitHub (pinned to 24702dc5a0)