This page helps when something goes wrong with a resource pack: a release that fails or doesn't start, warnings from the converter, blocks that show as missing models, broken shaders, or players who don't get the new pack. Start with the message you got. Problems that need someone with access to the server say "an operator"; operators find the server side in Resource pack server (operators only).
Messages in game
After /rp release, MCME-Architect says when the release starts, sends a line as each group of zips is done, and ends with one message that says how it went.
| Message | What it means | What to do |
|---|---|---|
Releasing <Pack> <tag> ("<title>"). … |
The release started. | Wait for the closing message. |
<Pack> <tag> is released., or … is released, with <n> warnings: |
Published on GitHub. The first 3 warnings follow. | Read the warnings (see Converter messages), then put the release live with a button of the Put it live: line. |
<Pack> <tag> is released, but its checks found … |
Published, but the run summary found problems: an empty zip, far fewer files than last time, or no GitHub release. | Look at the run (see Problems in the run summary) before you put the release live. |
<Pack> <tag> failed., or … failed with exit code <n>. |
The release stopped. The lines under it give its last ERROR: reason. |
See Release errors. |
<Pack> <tag> didn't start: another release is running. |
Nothing was built. Only one release runs at a time on each stage. | Wait until it has finished, then run /rp release again. |
<Pack> <tag> didn't start: the release system on this server needs an admin. |
The release automation on that server isn't set up right, or its copy of ResourcePackScripts differs from GitHub. | Ask an operator, and pass on the lines under the message. |
<Pack> <tag> was stopped after <n> minutes, during … |
The release ran longer than the plugin allows (30 minutes unless set otherwise), so it was stopped. | Check the release on GitHub, and ask an operator. A pack that needs longer can be given more time. |
<Pack> <tag> couldn't be started: … |
The script couldn't be started on the server. | Ask an operator. |
<Pack> can't be released from this server: … |
The pack isn't set up for releases on this server. Nothing started. | Release from the right server (the RP server for a test release), or ask an operator. |
Unknown resource pack: <name>. Use one of: … |
No pack in the server's config starts with what you typed. | Use one of the names it lists. |
Command syntax: /rp release <rpName> <Version> <Title> |
Fewer than three words after release. |
Give the pack, the tag and a title. |
A releaser who left the server gets the closing message about 2 seconds after they next join it, under While you were away:, unless the server restarts first.
Release errors
A stopped release ends with one ERROR: line that says why. These are the ones a pack author can act on:
| Message | What it means | What to do |
|---|---|---|
ERROR: The tag '…' can't be used |
The tag has characters other than letters, digits and . _ -, or doesn't start with a letter or digit. Nothing was built. |
Use a tag like v4.1.3. |
ERROR: <tag> already exists in <owner>/<repo>, and this folder never replaces a release's zips |
A production release with a tag that exists. Nothing was built. | Use a new tag. |
ERROR: generateVanilla stopped |
The converter failed. The lines above it say why. | See The converter stopped. |
ERROR: Couldn't work out the release note |
A zip's pack.mcmeta declares no usable pack format. |
Fix pack.mcmeta (see Pack repository). |
ERROR: … holds the same files as …: the footprints textures didn't make it in |
A Footprints zip came out the same as the zip it was made from. Nothing was published. | Ask an operator. |
ERROR: Couldn't copy Footprints/… |
The footprints texture couldn't be copied in, for example because the pack has no assets/minecraft/textures/block/ folder. |
Check that your pack has that folder, then ask an operator. |
ERROR: <Pack>-Lite.zip holds the same files as <Pack>-Vanilla.zip: … |
The Lite conversion came out the same as the Vanilla one, so Lite mode failed. | Report it in the ResourcePackScripts issues, with the run's generateVanilla lines. |
ERROR: Couldn't fetch <pack> from GitHub |
GitHub couldn't be reached, or refused. Nothing was built. | Try again in a few minutes. If it keeps failing, ask an operator. |
ERROR: gh couldn't … |
GitHub refused, or couldn't be reached, while checking, creating or uploading the release. | Try again. If the upload failed, the line says what state the release is in and what to do. On the RP server, release again with the same tag. On production, someone with write access to the repository deletes the half-made release on GitHub first, or you use a new tag. |
ERROR: Someone edited <pack> on the server, … has commits that GitHub's <branch> doesn't, … isn't on a branch, … follows no branch on GitHub |
The server's copy of the pack differs from GitHub. Nothing was built. | Ask an operator to bring the server's copy back to GitHub's. Never fix a pack on the server: change it on GitHub. |
WARNING!!! release note: the zips support different Minecraft versions is not an error: the note names only the versions all the zips support.
The converter stopped
When generateVanilla stops, the release ends with ERROR: generateVanilla stopped and nothing is published. The cause is in the lines above it:
- A Python
Tracebackending inJSONDecodeError: a JSON file in the pack is broken or empty. The error doesn't name the file. To find it, run the conversion locally with--debug: the lastWorking on blockstate file: …orWorking on item file: …line before the traceback names the blockstate or item definition being read (the broken file is that one or a model it uses). If the traceback comes before any such line, checkpack.mcmeta. In October 2026 an emptylightning_rod.jsonblockstate stopped every Paths of the Dead release until it was deleted. An empty blockstate is broken in game too. AttributeError: 'dict' object has no attribute 'replace': the description inpack.mcmetais a text component. Make it a plain string.AttributeError: 'NoneType' object has no attribute 'get'or'list' object has no attribute 'split', in_read_objmeta: an empty.objmeta, or anoffsetwritten as a YAML list. Delete the empty file, or write the offset as one string:offset: "-0.5 0.0 -0.5".ERROR: The pack's copies of these shader base files were changed by hand: see Shader problems.ERROR: Shader imports that don't resolveorERROR: Shaders some players' drivers would refuse: see Shader problems.ERROR: Textures the terrain shaders would draw over as a fluid: see Shader problems.
Converter messages
A problem with one model or file is skipped with a message and the run carries on, so a release can succeed with broken blocks in it. Read the messages after every run. Not all of them start with WARNING.
The run summary counts the lines that start with WARNING! as warnings. Lines containing Error count as errors, so one model objmc couldn't bake (Error running process script) makes the whole run failed, even though the release went out. Missing .mtl file, Missing texture for, Unexpected namespace and Note: lines aren't counted at all: search the run's log for them.
| Message | Meaning | What to do |
|---|---|---|
Missing model file: … |
A blockstate, item or model names a model that neither the pack nor the vanilla client has. | Fix the name, or add the model. |
Expected model file not found: … |
An mcme: model is named, but its model JSON doesn't exist. The block shows as a missing model. |
Add the model JSON, or fix the name in the blockstate. |
Missing .mtl file … |
The model's .mtl (its own name, or mtl_override) doesn't exist. Model skipped. |
Add the .mtl, or fix mtl_override. |
Missing texture for … |
Neither the .objmeta nor the .mtl names a texture, or map_Kd isn't at the start of its line. Model skipped. |
Add a map_Kd line or a texture: key. |
Error running process script + objmc's output |
objmc failed on this model: no faces, a texture narrower than 8 pixels, a vertex more than 128 blocks out, a missing texture file. Model skipped. | Read objmc's message under it, and fix the model or texture. |
Multiple rotations for … |
A blockstate entry rotates around two axes. Only the first is baked. | Make a pre-rotated model and use one rotation. |
Rotation … is not a number |
Model skipped. | Use a number: 90, 180, 270. |
… shares parent group … but its baked texture is … |
Models using one shared parent .obj have textures of different sizes. |
Make every texture used with that .obj the same size (see Shared parents). |
… does not divide into WxH frames - baking it unanimated |
An animated texture's sheet doesn't split evenly into frames. | Fix the sheet size, or width and height in its .mcmeta. |
Note: … lists frames past … |
The .mcmeta names frames the sheet doesn't have. They're dropped. |
Remove them from the .mcmeta. |
Note: turning off interpolation … |
Baked animations can't interpolate. | Nothing, or remove interpolate from the .mcmeta. |
Unrecognised objmc bake / Could not find the texture in the objmc bake |
Stacking an animation's frames failed; the model is baked without animation. | Report it in the ResourcePackScripts issues. |
Unexpected texture namespace … / Unexpected namespace … |
A texture outside mcme: and minecraft:, or an .obj or mtl_override outside mcme:. |
Textures: use mcme: or minecraft:. .obj and .mtl: use mcme:. |
Unrecognised texture value for … |
A model's textures entry has a form the converter doesn't know. Texture not copied. |
Use a plain identifier or {"sprite": …}. |
Error parsing objmeta file … |
A YAML error in a .objmeta. The defaults are used. |
Fix the YAML. |
… leads outside the pack - skipping … |
A path or a symbolic link in the pack points outside it. | Remove the link: a pack holds only real files. |
Missing vanilla overrides folder |
The pack has no vanilla/ folder. |
Nothing: most packs have none. |
Missing assets folder |
The pack has no assets/ folder. |
Check the path you gave. |
Fluid textures that can't carry the codes … |
A fluid texture's size isn't a multiple of 4, or it has fully transparent texels, so that fluid shows plain. | Fix the texture, then sync again (see The shader base). |
Two things go wrong without any message:
- an
mcme:model JSON without amodelkey; - a missing
.obj, for example one that.gitignorekept off GitHub (see Pack repository).
Both leave the block as a missing model. Check new models in game, in the Vanilla variant.
Shader problems
| Message or symptom | Cause | Fix |
|---|---|---|
The pack's copies of these shader base files were changed by hand |
Someone edited a file the shader base owns, in assets/ or vanilla/assets/. |
Put the base's copy back by running the sync, and move your change into a hook, or list a module's settings file under own in .mcme-shaders.json. |
Shader imports that don't resolve - the client would drop every resource pack |
A #moj_import (or, in mc26_3/, an #include) names a file that doesn't exist. Minecraft would drop every pack the player has on. |
Add the missing file, or fix the import. Import with the namespace: <minecraft:my_feature.glsl>. |
Shaders some players' drivers would refuse |
A #version above 410, an ES shader, or an #extension other than GL_ARB_separate_shader_objects. |
Lower the version, or remove the extension. |
Textures the terrain shaders would draw over as a fluid |
A texture that isn't a fluid still carries a fluid's code, usually because it was copied from the water texture. | Edit a few texels of each named texture, even by one step. |
no such module … / … says the pack has its own of these, but it hasn't |
.mcme-shaders.json names a module that doesn't exist, or an own file that isn't there. |
Fix .mcme-shaders.json. |
| The shader check on GitHub fails | A shader doesn't compile or link for some version or platform. | Read the check's PROBLEM lines. Run checkShaders.py locally (see Checks). |
| Water looks plain after you edited its texture | Editing a fluid texture loses its code. | Run the sync again, or signFluids.py <pack> water. |
Problems in the run summary
| Problem | Usual cause | What to do |
|---|---|---|
<zip> is empty. |
Zipping finished, but the zip holds no files. Look at the step before it. | Fix the cause, then release again. |
7-Zip did not finish <zip>. |
The server's disk was full, or a file vanished while zipping. | Release again; if it repeats, ask an operator. |
<zip> has N files; the last good release (vX) had M. |
More than 10 % fewer files than last time: the conversion broke half-way, or the pack really lost files. | Compare with the last release. If the drop is intended (a big cleanup), ignore it. |
No GitHub release was created. |
gh couldn't create the release. |
Read the releasing step's output, and ask an operator. |
The run stopped before it finished. |
The run was cut off, usually by a server restart. | Release again. |
Re-running a release
Running /rp release again with a tag that already exists on GitHub:
- On the RP server: the release goes ahead and replaces the zips of that release. A line says
<tag> already exists …: its zips are replaced, and gh'sHTTP 422after it is expected. - On production: it stops before building anything. Use a new tag.
Players and servers that already have the old zip keep it until its SHA-1 changes, so after replacing zips run /rp server again for every slot that uses the tag, or /rp calcsha <pack> all. Using a new tag is usually simpler.
Players see the old pack, or no pack
- Was
/rp serverrun for that Minecraft version, on that server? Servers that share a config file need/architect reloadafter another one changed it (see Put the release on a server). - Did every variant get its zip? If a zip was missing from the release,
/rp serversaysVariant … was not set for MC … and keeps its url and sha. - Online players don't get a new release by themselves. They get it when they next join the network or walk into another RP region.
/rp <pack> -forceresends it to you, to check. - Is there a region for the pack where the player is?
/rp checktells you which pack the region at your position gives.
Something is missing from the Vanilla or Lite zip
The converter only writes what the vanilla blockstates and items need. Check, in this order:
- Is the block or item in Minecraft 26.2? The converter walks 26.2's list. Newer blocks, 26.3's included, are dropped.
- Is the file used? Models and textures that no blockstate or item definition reaches aren't copied.
finder.pyin ResourcePackScripts helps find what uses a model. - Is there a message for it? Search the run's log, or your local run, for the file name.
- Is it in a folder that is rebuilt?
blockstates,items,models,textures/blockandtextures/itemare rebuilt from what is used. A texture there that only a font or GUI uses is lost: move it totextures/guior similar. - Is it in the Lite zip only? Lite keeps only the first two models of every blockstate list.