itzg / itzg/docker-minecraft-server
"Unable to resolve slug into ID (no matches)"
- Dominant language
- Shell
- Stars
- 14.3k
- Forks
- 1.9k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 31
Description
### Describe the problem
"foamfix-for-minecraft"s slug has appeared to have changed to "foamfix-optimization-mod" which is forcing the container to exit. When I try to exclude foamfix-for-minecraft nothing changes. I attempted to create another container using AUTO_CURSEFORGE using ATM9 and got the same error with foamfix.


### Container definition
```
services:
mc:
image: itzg/minecraft-server
tty: true
stdin_open: true
ports:
- "25565:25565"
environment:
VERSION: "1.20.1"
SERVER_NAME: "Helium - Better MC"
ICON: https://static.wikia.nocookie.net/minecraft_gamepedia/images/5/57/Helium.png/revision/latest?cb=20180620192736
OVERRIDE_ICON: "TRUE"
TYPE: "AUTO_CURSEFORGE"
CF_API_KEY: ''
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/better-mc-forge-bmc4/files/5418297
CF_EXCLUDE_MODS: "foamfix-for-minecraft"
MEMORY: "6GB"
EULA: "TRUE"
volumes:
# attach the relative directory 'data' to the container's /data path
- ./data:/data
```
### Container logs
```
[init] Running as uid=1000 gid=1000 with /data as 'drwxr-xr-x 5 1000 1000 4096 Jul 7 00:39 /data'
[mc-image-helper] 01:29:52.840 INFO : Processing modpack 'Better MC [FORGE] 1.20.1 v28' (better-mc-forge-bmc4) @ 876781:5418297
[mc-image-helper] 01:29:53.015 ERROR : 'install-curseforge' command failed. Version is 1.39.3
me.itzg.helpers.errors.GenericException: Unable to resolve slug into ID (no matches): foamfix-for-minecraft
at me.itzg.helpers.curseforge.CurseForgeApiClient.lambda$slugToId$7(CurseForgeApiClient.java:178)
at java.base/java.util.Optional.orElseThrow(Unknown Source)
at me.itzg.helpers.curseforge.CurseForgeApiClient.lambda$slugToId$8(CurseForgeApiClient.java:178)
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245)
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305)
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158)
at reactor.core.publisher.MonoPublishOn$PublishOnSubscriber.run(MonoPublishOn.java:181)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Suppressed: java.lang.Exception: #block terminated with an error
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:103)
at reactor.core.publisher.Mono.block(Mono.java:1712)
at me.itzg.helpers.curseforge.CurseForgeInstaller.resolveExcludeIncludes(CurseForgeInstaller.java:663)
at me.itzg.helpers.curseforge.CurseForgeInstaller.processModpack(CurseForgeInstaller.java:548)
at me.itzg.helpers.curseforge.CurseForgeInstaller.resolveModpackFileAndProcess(CurseForgeInstaller.java:400)
at me.itzg.helpers.curseforge.CurseForgeInstaller.installByRetrievingModpackZip(CurseForgeInstaller.java:262)
at me.itzg.helpers.curseforge.CurseForgeInstaller.lambda$install$3(CurseForgeInstaller.java:181)
at me.itzg.helpers.curseforge.CurseForgeInstaller.install(CurseForgeInstaller.java:218)
at me.itzg.helpers.curseforge.CurseForgeInstaller.install(CurseForgeInstaller.java:180)
at me.itzg.helpers.curseforge.InstallCurseForgeCommand.call(InstallCurseForgeCommand.java:213)
at me.itzg.helpers.curseforge.InstallCurseForgeCommand.call(InstallCurseForgeCommand.java:29)
at picocli.CommandLine.executeUserObject(CommandLine.java:2045)
at picocli.CommandLine.access$1500(CommandLine.java:148)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2465)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2457)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2419)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2421)
at picocli.CommandLine.execute(CommandLine.java:2174)
at me.itzg.helpers.McImageHelper.main(McImageHelper.java:159)
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the failure with the shown Docker Compose settings, especially CF_EXCLUDE_MODS and CF_PAGE_URL. Start at CurseForgeInstaller.resolveExcludeIncludes and CurseForgeApiClient.slugToId from the stack trace, then verify that the excluded FoamFix project is resolved without aborting modpack installation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, java, shell
- Domain
- devops, infrastructure, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100