Common Issues
Missing Required Properties
Symptom: MCReleaser exits immediately without uploading Error Message:- Ensure all required properties are set:
- Or use system properties:
- Enable missing key announcements to see what’s missing:
Required properties:
name, version, description, filesNo Platform Found
Symptom: Runtime exception Error Message:platformsproperty is empty or invalid- Platform-specific required properties are missing
- Platform names are misspelled
- Check platform names (must be lowercase):
- Verify platform-specific properties are set:
File Globs Not Found
Symptom: Validation error Error Message:files property is not set.
Solution:
Authentication Failures
Symptom: HTTP 401 or 403 errors Error Message (varies by platform):- Verify token format:
- Modrinth: Tokens start with
mrp_ - GitHub: Personal access tokens start with
ghp_, fine-grained tokens start withgithub_pat_ - CurseForge: API key from CurseForge console
- Hangar: API key from Hangar settings
- Polymart: API key from Polymart account
- Check token permissions:
- GitHub: Requires
reposcope (orcontents: writefor fine-grained) - Modrinth: Requires
PROJECT_WRITEscope - CurseForge: Requires project upload permissions
- Regenerate tokens if expired or compromised
- Verify environment variables are set correctly:
Invalid Project ID
Symptom: HTTP 404 or project not found error Cause: Incorrect project identifier for the platform Solution:- Modrinth: Use project slug or ID
- GitHub: Use
owner/repositoryformat
- CurseForge: Use numeric project ID
- Hangar: Use
owner/projectformat
- Polymart: Use numeric resource ID
Game Version Errors
Symptom: Upload rejected due to invalid game versions Error Message:- Game version format incorrect
- Game version not yet available on platform
- Version type filter too restrictive
- Use correct format (comma or space-separated):
- Use version type filter to auto-fetch versions:
- Override per platform:
- Check platform availability: Some platforms may not have newer versions available immediately after Minecraft releases.
Platform-specific
gameVersions properties override the global GAME_VERSIONS property.Network Timeouts
Symptom: Upload hangs or times out Error Message:- Large file uploads on slow connections
- Multiple parallel uploads overwhelming network
- Platform API slowness
- Use synchronous mode to upload sequentially:
- Reduce number of platforms:
- Check network connectivity:
- Increase Java timeout (if using custom HTTP client):
Partial Upload Success
Symptom: Some platforms succeed, others fail in async mode Cause: Asynchronous mode continues uploading to all platforms even if one fails Solution:- Check logs to identify which platform failed
- Use synchronous mode for clearer error tracking:
- Upload to single platform to isolate issue:
- Re-run for failed platforms only:
Property Name Confusion
Symptom: Property not being read despite being set Cause: Incorrect property name casing or format Solution:- Use correct casing:
- Verify conversion:
| Property (camelCase) | Environment (CONSTANT_CASE) |
|---|---|
modrinthToken | MODRINTH_TOKEN |
gameVersionType | GAME_VERSION_TYPE |
githubRepository | GITHUB_REPOSITORY |
- Check priority: Environment variables override system properties
Dependency Format Errors
Symptom: Modrinth upload fails due to invalid dependencies Error Message:File Not Found
Symptom: Upload fails because files don’t exist Error Message:- Incorrect glob pattern
- Files not built yet
- Wrong working directory
- Verify files exist:
- Check working directory:
- Use correct glob pattern:
- Build before uploading:
Debugging Tips
Enable Verbose Logging
MCReleaser uses SLF4J. Configure logging inlogback.xml or via system properties:
Check Property Values
Verify all properties are set correctly:Test Single Platform
Isolate issues by testing one platform at a time:Use Synchronous Mode
Easier to debug with sequential execution:Validate Tokens
Test API tokens independently:Check API Status
Verify platform APIs are operational:- Modrinth: https://status.modrinth.com
- GitHub: https://www.githubstatus.com
- CurseForge: Check community forums
Getting Help
If you’re still experiencing issues:- Check existing issues: Search the GitHub repository for similar problems
- Gather information:
- MCReleaser version
- Java version (
java -version) - Full command or configuration
- Complete error message and stack trace
- Platform(s) affected
- Create a minimal reproduction: Simplify to smallest failing case
- Redact sensitive information: Remove tokens, project IDs, and other secrets
- Open an issue: Provide all gathered information
Best Practices to Avoid Issues
- Use environment variables for secrets: Prevents accidental exposure
- Enable missing key announcements during development: Catch configuration errors early
- Test with single platform first: Verify configuration before multi-platform upload
- Use version control for configuration: Track changes to
.envfiles (exclude secrets) - Validate tokens regularly: Check expiration and permissions
- Document your configuration: Maintain
.env.examplewith required properties - Use CI/CD secrets management: Never hardcode tokens in scripts
- Test in synchronous mode first: Easier debugging before switching to async