Why Does My Custom Resource Pack Cause an Infinite Loading Screen on Minecraft Bedrock (v1.21 / v1.26)?
Quick Answer: An infinite loading screen at 100% when activating a custom resource pack is typically caused by invalid manifest.json syntax (missing version array), malformed custom UI JSON files, or missing required asset dependencies that Bedrock expects but the vanilla template doesn’t explicitly document.
Details:
This issue affects resource pack developers targeting Minecraft Bedrock versions 1.21.x and 1.26.x (v26+). The game hangs at 100% on the loading screen with no crash report or error message, making diagnosis difficult. The problem occurs on both Android (v1.21.130) and Windows (v1.26.33) platforms.
Common Root Causes
- Invalid manifest.json version field: The version field must be an array of integers (e.g.,
[1, 0, 0]), not a string or empty value. In the reported case, the manifest showed"version":,with a trailing comma and no value. - Malformed custom UI JSON files: Custom UI definitions in the
ui/folder must follow the exact schema Bedrock expects. Missing required fields, incorrect property names, or circular references in UI definitions can cause the UI engine to hang during initialization. - Missing required asset dependencies: When stripping the vanilla resource pack template, you may have removed files that Bedrock’s engine implicitly requires (e.g., specific font definitions, default UI textures, or
font/folder contents). - Corrupted or non-standard PNG files: Even if images appear correct, 32-bit PNGs with certain metadata chunks or incorrect color profiles can stall the texture loader.
Step-by-Step Fix
1. Fix the manifest.json version field
{
"format_version": 1,
"header": {
"description": "SQUARE PVP",
"name": "SQUARE PvP by coby",
"uuid": "2a9b4c6e-8d1f-4a3b-9c2e-7f6b5a4d3c2b",
"version": [1, 0, 0],
"min_engine_version": [1, 12, 1]
},
"modules": [
{
"description": "SQUARE PVP",
"type": "resources",
"uuid": "9f8e7d6c-5b4a-3f2e-1d0c-9b8a7f6e5d4c",
"version": [1, 0, 0]
}
]
}
Ensure version is always an array of three integers: [major, minor, patch].
2. Validate custom UI JSON files
Check each file in your ui/ folder against the Bedrock UI schema. Common issues:
- Missing
"controls"array in screen definitions - Incorrect
"type"values for controls (must match Bedrock’s registered control types) - Circular
"bindings"or"$source"references
Test by temporarily removing the ui/ folder entirely. If the pack loads, the issue is in your UI definitions.
3. Restore missing vanilla dependencies
Compare your stripped pack against a working vanilla resource pack (like the official template). Ensure these folders exist even if empty:
resource_pack/
├── fonts/ # Required for text rendering
├── ui/ # If using custom UI, keep vanilla fallbacks
├── textures/
│ ├── font/ # Default glyph textures
│ └── ui/ # Core UI textures (progress bars, buttons, etc.)
└── manifest.json
4. Validate PNG files
Use a tool like pngcheck or an online PNG validator to verify all textures are valid 32-bit PNGs without ancillary chunks that Bedrock’s parser might choke on. Re-export from an image editor (e.g., Paint.NET, GIMP) to strip problematic metadata.
Debugging Tips
- Enable Content Log: In
settings.json(incom.mojang/), set"content_log_file": "content_log.txt"and"content_log_level": "debug". Check the log after a hang for the last loaded asset. - Binary Search: Remove half your custom assets, test load. Repeat to isolate the problematic file/folder.
- Test on Clean Install: Rule out cache corruption by testing on a fresh Minecraft install or different device.
Last updated: 2026-07-13
