Datapacks add functions, recipes, advancements or new world generation to Minecraft, while resourcepacks provide textures and sounds. Both are tied to a data format that changes with almost every Minecraft version. If a pack doesn't match your server's version or a file inside it is corrupted, the server writes a message to the log. Usually it only skips the affected entry, but in one case it aborts the startup.

Each section below covers one of these messages. You can find the full message along with the lines below it in the Console or under Files in logs/latest.log. The part before the colon in names like <pack>:<eintrag> is called the namespace and almost always tells you which pack or mod the error comes from. Before making any changes to the world folder or to pack files, create a backup under Backups.

Server won't start: a datapack can't be loaded

What the message looks like:

Failed to load datapacks, can't proceed with server load. You can either fix your datapacks or reset to vanilla with --safeMode
java.util.concurrent.ExecutionException: java.lang.IllegalStateException: <Reason>

What's behind it: Minecraft aborts the startup because at least one datapack could not be loaded. The server stays offline until this is fixed. Usually the pack was built for an older or newer Minecraft version, or a file inside it is corrupted. The line below names the reason; Overworld settings missing, for example, points to a pack that changes world generation.

How to fix it:

  1. Create a backup under Backups.
  2. Under Files, open the world folder (world by default) and the datapacks folder inside it.
  3. Remove the most recently added pack. If you want to keep it, download it first.
  4. Restart the server. Once it runs again, re-upload the pack in a version for your Minecraft version.
  5. If you don't know which pack is to blame, remove the packs one by one and restart each time.

Good to know: You don't need the --safeMode startup parameter from the message for this. If you remove a pack that changes world generation, new chunks are afterwards created by the normal rules again; at the border to old chunks you will often see an edge. After a version change, Switching Minecraft Version and Modloader Safely helps.

Datapack function contains an unknown command

What the message looks like:

Failed to load function <pack>:<pfad>
java.util.concurrent.CompletionException: java.lang.IllegalArgumentException: Whilst parsing command on line 4: Unknown or incomplete command, see below for error at position 0: <--[HERE]

What's behind it: Datapacks control their processes through functions: text files with the extension .mcfunction that contain commands. One of these files contains a command that your Minecraft version doesn't know or expects differently; usually the pack was built for a different version. Only this function fails and the server keeps running; parts of the pack that depend on it won't work.

How to fix it:

  1. Read the first line: before the colon is the pack's namespace, after it the path of the function. line 4 gives the line, position 0 the spot within it; at 0, the command name itself is already unknown.
  2. Replace the pack in the datapacks folder of your world with the version for your Minecraft version.
  3. For your own packs, open data/<pack>/function/<pfad>.mcfunction (in older packs the folder is called functions) and correct the named line.
  4. Restart the server or enter reload in the Console. On Paper and Spigot, reload reloads all plugins; use minecraft:reload there.

Good to know: Some packs contain functions for optional mods whose commands are unknown without the mod. If the message only concerns such add-on parts, you can ignore it.

Pack was built for a different Minecraft version

What the message looks like:

Couldn't load file/<Pack>.zip pack metadata: Pack declares support for version newer than <Number>, but is missing mandatory fields min_format and max_format
Couldn't load file/<Pack>.zip pack metadata: Pack declares support for format <Number>, but game versions supporting formats …

What's behind it: Every datapack and resourcepack has the file pack.mcmeta in its top-level folder. It contains, as a number, the pack format it was built for, and every Minecraft version supports only certain formats. If a pack states it was built for newer formats, the server additionally requires the fields min_format and max_format. If they are missing or the number doesn't match, the server doesn't load the pack. It keeps running, just without this pack.

How to fix it:

  1. The file name after file/ shows which pack is affected.
  2. Check under Version which Minecraft version your server has.
  3. On the pack's page, download the version for exactly this version, use it to replace the old file in the datapacks folder of your world and restart.
  4. For your own packs, enter the pack_format matching your version in pack.mcmeta, and for newer versions also min_format and max_format. The Minecraft Wiki lists the numbers for each version.

Good to know: Version details in the file name only tell you what the author intended the pack for. What matters is what's in pack.mcmeta.

Datapack tag refers to entries that are missing

What the message looks like:

Couldn't load tag minecraft:load as it is missing following references: <pack>:tick (from file/<Pack>.zip)
Couldn't load tag <namespace>:<tag> as it is missing following references: <mod>:<eintrag> (from <mod>.jar)

What's behind it: A tag is a named list. minecraft:load and minecraft:tick list functions that are run on loading or continuously; other tags group blocks, items or creatures. Here a tag names entries that could not be loaded. Usually the related function itself has an error, or another pack or a mod is missing. The parentheses show where the tag comes from. Minecraft then drops the entire tag, also for other packs that use it; with minecraft:load or minecraft:tick, their processes don't start.

How to fix it:

  1. First fix the "Failed to load function" messages from the same pack. Often this message then disappears too.
  2. If the missing entry belongs to another pack or mod, install it in the version for your Minecraft version.
  3. If even entries with minecraft: in front are missing, the pack was almost always built for a different version. Replace it with the matching version.
  4. Restart or reload the datapacks (reload, on Paper and Spigot minecraft:reload).

Good to know: If a .jar file is in the parentheses, the tag comes from a mod: Mod Errors on Forge, NeoForge and Fabric Servers.

Recipe or other datapack file doesn't match the data format

What the message looks like:

Couldn't parse data file '<pack>:<name>' from '<pack>:recipe/<name>.json': DataResult.Error['List is too short: 0, expected range [1-9]']

What's behind it: Datapacks describe recipes, advancements, predicates and loot tables in JSON files. JSON is a text format made of curly braces, field names and values. The named file is valid JSON, but uses fields or references that your Minecraft version doesn't know. Minecraft skips this one entry. An affected recipe can then not be crafted, and the server keeps running normally.

How to fix it:

  1. The part after from shows the pack and file, and the text in DataResult.Error[…] says what doesn't fit. List is too short: 0 means, for example: a list is empty although entries are expected.
  2. Download the version of the datapack for your Minecraft version and replace the old one in the datapacks folder of your world.
  3. For your own packs, adjust the file to the current format. The Minecraft Wiki describes how each file type is structured.
  4. Restart the server.

Good to know: Not a string: {"item":"minecraft:tnt"} means that the file uses an older recipe format. This version expects only the name as text at that spot, i.e. "minecraft:tnt".

Entry from a datapack or mod is unreadable

What the message looks like:

Couldn't read tag list <namespace>:<tag> from <namespace>:tags/block/<tag>.json in data pack mod/<mod>
java.lang.IllegalStateException: Failed to parse either. First: Not a string: null; Second: Not a JSON object: null

What's behind it: For some entries, Minecraft accepts two notations. "Failed to parse either" means: the content matches neither; after First and Second it says why each one failed. Usually the entry comes from a mod built for a different Minecraft version, or from a corrupted datapack. The affected group, such as a block or item list, stays empty. This can disrupt recipes or world generation.

How to fix it:

  1. Find the origin: in data pack mod/<mod> stands for a mod, file/<Pack>.zip for a datapack. The namespace before the colon helps as well.
  2. Check under Mods or in the datapacks folder of your world whether all mods and datapacks match your Minecraft version.
  3. Update the most recently added mod or pack.
  4. If the message appeared right after uploading a datapack, remove it as a test and restart.

Good to know: If the message concerns a mod, the sections in the article Mod Errors on Forge, NeoForge and Fabric Servers help further.

Advancements from a datapack are missing

What the message looks like:

Couldn't load advancements: [<pack>:<progress>, <pack>:<progress>]

What's behind it: Advancements are the progress that players unlock in the game. Minecraft could not resolve the named entries when loading the datapacks, for example because they refer to something that doesn't exist in this version. Many datapacks and mods also use advancements invisibly as triggers, for example to detect that a player has found a structure. Such functions then fail. The server keeps running.

How to fix it:

  1. The namespace before the colon shows which datapack or mod supplies the advancements.
  2. Update this pack or mod to the version for your Minecraft version. If you don't need it, remove it.
  3. Restart the server or reload the datapacks (reload, on Paper and Spigot minecraft:reload).
  4. If the message is still there afterwards, read the lines before it in logs/latest.log. There the server often says which part of an entry doesn't fit.

Good to know: Even if the namespace is minecraft, a datapack can be the sender. Packs are allowed to create their own entries under this name.

Datapack predicate has the wrong format

What the message looks like:

Couldn't parse element predicates:<pack>:<name> - Not a json array: {"condition":"minecraft:any_of","terms":[…]}

What's behind it: A predicate is a stored condition that a datapack checks, for example whether a player has a certain score. Commands and loot tables rely on it. Your Minecraft version expects a list in square brackets [ … ] at this spot, but the pack supplies a single object in curly braces { … }. Minecraft therefore doesn't load the predicate. Everything in the pack that depends on it behaves incorrectly or not at all. The server itself keeps running.

How to fix it:

  1. The name after predicates: shows the pack and predicate.
  2. Download the version of the datapack for your Minecraft version and replace the old one in the datapacks folder of your world.
  3. For your own packs, open data/<pack>/predicate/<name>.json (in older packs the folder is called predicates) and bring the file into the current format as described by the Minecraft Wiki.
  4. Restart or reload the datapacks.

Prompt text for the server resourcepack is formatted incorrectly

What the message looks like:

Failed to parse resource pack prompt '<Hint text>'
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setStrictness(Strictness.LENIENT) to accept malformed JSON at line 1 column 1 path $

What's behind it: With resource-pack-prompt in server.properties, you set the text that players see when the server offers them a resourcepack. Minecraft expects a text component in JSON format there, not a simple sentence. If the server can't read the value, it omits the prompt. The server keeps running normally, only your own prompt text doesn't appear.

How to fix it:

  1. Under Files, open the file server.properties in the server's main folder.
  2. Write the value as JSON text, for example resource-pack-prompt={"text":"<Hint text>"}.
  3. If you don't need a custom prompt, leave the value after the equals sign empty.
  4. Save the file and restart the server.

Good to know: The remaining values of the file are explained in Configuring Minecraft server.properties.

A pack's pack.mcmeta file is faulty

What the message looks like:

Couldn't load file/<Pack>.zip pack metadata: com.google.gson.stream.MalformedJsonException: <Details>

What's behind it: pack.mcmeta is the profile file of every pack and sits in its top-level folder. Here it is not valid JSON: a comma, a quotation mark or a bracket is missing, for example. Minecraft therefore can't classify the pack and doesn't load it. The server keeps running without the pack.

How to fix it:

  1. The easiest way is to download the pack again from its official page and replace the file in the datapacks folder of your world.
  2. For your own packs, open pack.mcmeta. If the pack is a ZIP archive, download it, fix the file on your computer and upload the archive again.
  3. Check the content with a JSON validator, meaning a website or an editor that highlights syntax errors, and fix the highlighted spot. The message often gives the line and column.
  4. Restart the server.

Good to know: Typical errors are a comma after the last entry, typographic instead of straight quotation marks, and a missing closing bracket.

Recipe names an item that doesn't exist

What the message looks like:

Expected item to be an item, was unknown string '<mod>:<item>'

What's behind it: A recipe names an item that doesn't exist on the server. Almost always the mod that provides this item is missing, or it is present in a version in which the item has a different name. Only the affected recipe is skipped. The server starts normally, but this one recipe can't be crafted in the game.

How to fix it:

  1. Read the name in quotation marks. Before the colon is the responsible mod: for horsepower:flour, it is the mod "horsepower".
  2. Check under Mods whether this mod is installed.
  3. If it is installed, compare its version with the one your modpack specifies and align them.
  4. Restart the server and check whether the message no longer appears.

Good to know: If the mod is missing on purpose, for example because you removed it from the modpack, you can ignore the message. Then only this recipe is missing. How mods and modpack fit together is shown in Setting Up Minecraft Mods and Modpacks Correctly.

Recipe uses an unknown processing type

What the message looks like:

com.google.gson.JsonSyntaxException: Unknown recipe '<mod>:<recipe type>'

What's behind it: Many mods bring their own recipe types, for example for a mill or press. Here a recipe uses such a processing type that the server doesn't know. The mod that defines it is missing or too old. The recipe is skipped and the server keeps running.

How to fix it:

  1. The name before the colon names the responsible mod.
  2. Install it under Mods or bring it to a version that fits your modpack.
  3. If the recipe comes from a datapack that you added yourself, remove the recipe there or take the entire pack out of the datapacks folder of your world.
  4. Restart the server.

Good to know: If a mod is missing entirely, the message often appears many times in a row with the same name before the colon. In that case, it is enough to install that one mod. If it is missing on purpose, only the recipes that use its processing type are missing.

Empty JSON file in mod or datapack data

What the message looks like:

com.google.gson.JsonParseException: java.io.EOFException: End of input at line 1 column 1 path $

What's behind it: When loading the game data, meaning recipes, loot tables, tags and the like, Minecraft found an empty JSON file. "End of input at line 1 column 1" means: the file ends before the first character. It often comes from a mod, a datapack or an incomplete or corrupted upload. The affected entry is skipped and the server keeps running.

How to fix it:

  1. In the Console or in logs/latest.log, read the lines immediately before and after. They usually say which file or mod is affected.
  2. If the file is in your own datapack, replace it with a complete version or remove it.
  3. If it belongs to a mod or downloaded datapack, download it again and re-upload it. Make sure the upload completes fully.
  4. Restart the server.

Good to know: For many or large files, an SFTP program is often more convenient than uploading in the browser: Editing Server Files in the Panel and Connecting via SFTP.

Resourcepack archive is structured invalidly

What the message looks like:

<Pack> does not contain a valid pack_manifest.json or manifest.json
The resource pack <Pack> is invalid and failed to load

What's behind it: The resourcepack could not be loaded. This mostly concerns Bedrock packs: they need a file manifest.json or pack_manifest.json that describes the pack. The most common reason is an extra folder level, where the archive first contains a folder and the file is only inside it. A corrupted archive or an unsuitable pack format also lead to this message. The pack is then missing, and the server keeps running.

How to fix it:

  1. Read the detail message in the lines around this message; it names the exact reason.
  2. Open the archive on your computer. manifest.json or pack_manifest.json must be located directly at the top level, not in a subfolder.
  3. If the file is in a subfolder, repack the contents of that folder as a ZIP archive and upload it again.
  4. If the archive is corrupted, download the pack again. A Java resourcepack with pack.mcmeta instead of a manifest doesn't fit here; it has to be recreated in Bedrock format.
  5. Restart the server.

Good to know: More Bedrock messages are explained in Bedrock Server and Geyser: Log Messages.

Jigsaw block names an unknown replacement block

What the message looks like:

Failed to parse jigsaw replacement state '<Block name>' at BlockPos{x=<x>, y=<y>, z=<z>}

What's behind it: Jigsaw blocks are technical blocks used to assemble structures from individual pieces. Each jigsaw block defines which block it is replaced by after assembly. Here this replacement block is unknown, usually due to a typo such as minecrat: instead of minecraft:. During generation, the block stays empty at this spot. The server keeps running, the structure just has a gap.

How to fix it:

  1. Note the position from BlockPos{…}: x, y and z.
  2. With OP permissions, go there in Creative mode, for example with /tp <x> <y> <z>.
  3. Open the jigsaw block with a right-click and correct the name in the field for the replacement block (in the English client "Turns into").
  4. If the structure comes from a datapack or mod, the error is in its structure file. Then a corrected version of the pack or mod helps; report the error to the author.

Good to know: The message is harmless for operation. It only affects the look of the structure at this one spot. How to grant OP permissions is explained in OP Permissions and Commands on the Minecraft Server.

Your message isn't listed?

Read the whole message in the Console or in logs/latest.log, including the lines right before it; often it shows which pack was being loaded at the time. The namespace before the colon and details like file/<Pack>.zip or mod/<mod> reveal the source. If a stack trace follows, meaning indented lines with at …, the folder and package names in it reveal the mod or plugin involved. Before changing world or pack files, create a backup under Backups. If you get stuck, open a ticket and include the time of the message.