
Crash when used with HM API
lunaynx opened this issue ยท 3 comments
Not sure who is at fault here, but here's a minimal reproduction.
Mod List
- Fabric API [0.128.1+1.21.5] by FabricMC (fabric-api-0.128.1+1.21.5.jar)
- HM Api [1.0.1+1.21.2] by AzureAaron (hm-api-1.0.1+1.21.2.jar)
- Polymer [0.12.6+1.21.5] by Patbox (polymer-bundled-0.12.6+1.21.5.jar)
Crash Log
---- Minecraft Crash Report ----
// Shall we play a game?
Time: 2025-07-27 11:54:00
Description: Initializing game
java.lang.RuntimeException: Could not execute entrypoint stage 'main' due to errors, provided by 'fabric-data-attachment-api-v1' at 'net.fabricmc.fabric.impl.attachment.sync.AttachmentSync'!
at net.fabricmc.loader.impl.FabricLoaderImpl.lambda$invokeEntrypoints$2(FabricLoaderImpl.java:403)
at net.fabricmc.loader.impl.util.ExceptionUtil.gatherExceptions(ExceptionUtil.java:33)
at net.fabricmc.loader.impl.FabricLoaderImpl.invokeEntrypoints(FabricLoaderImpl.java:401)
at net.fabricmc.loader.impl.game.minecraft.Hooks.startClient(Hooks.java:52)
at knot//net.minecraft.class_310.<init>(class_310.java:473)
at knot//net.minecraft.client.main.Main.main(Main.java:249)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:105)
at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
at org.prismlauncher.EntryPoint.main(EntryPoint.java:70)
Caused by: java.lang.ExceptionInInitializerError
at knot//net.fabricmc.fabric.mixin.attachment.CustomPayloadC2SPacketAccessor.getMaxPayloadSize(CustomPayloadC2SPacketAccessor.java)
at knot//net.fabricmc.fabric.impl.attachment.sync.AttachmentChange.<clinit>(AttachmentChange.java:63)
at knot//net.fabricmc.fabric.impl.attachment.sync.s2c.AttachmentSyncPayloadS2C.<clinit>(AttachmentSyncPayloadS2C.java:30)
at knot//net.fabricmc.fabric.impl.attachment.sync.AttachmentSync.onInitialize(AttachmentSync.java:103)
at net.fabricmc.loader.impl.FabricLoaderImpl.invokeEntrypoints(FabricLoaderImpl.java:399)
... 9 more
Caused by: java.lang.ClassCastException: class net.azureaaron.hmapi.network.WrappedPacketCodec cannot be cast to class eu.pb4.polymer.networking.impl.ExtCustomPayloadCodec (net.azureaaron.hmapi.network.WrappedPacketCodec and eu.pb4.polymer.networking.impl.ExtCustomPayloadCodec are in unnamed module of loader 'knot' @61009542)
at knot//net.minecraft.class_2817.modifyExpressionValue$ben000$polymer-networking$modifyCodec(class_2817.java:1517)
at knot//net.minecraft.class_2817.<clinit>(class_2817.java:18)
... 14 more
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Thread: Render thread
Stacktrace:
at net.fabricmc.loader.impl.FabricLoaderImpl.lambda$invokeEntrypoints$2(FabricLoaderImpl.java:403)
at net.fabricmc.loader.impl.util.ExceptionUtil.gatherExceptions(ExceptionUtil.java:33)
at net.fabricmc.loader.impl.FabricLoaderImpl.invokeEntrypoints(FabricLoaderImpl.java:401)
at net.fabricmc.loader.impl.game.minecraft.Hooks.startClient(Hooks.java:52)
at knot//net.minecraft.class_310.<init>(class_310.java:473)
-- Initialization --
Details:
Modules:
Stacktrace:
at knot//net.minecraft.client.main.Main.main(Main.java:249)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:105)
at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
at org.prismlauncher.EntryPoint.main(EntryPoint.java:70)
-- System Details --
Details:
Minecraft Version: 1.21.5
Minecraft Version ID: 1.21.5
Operating System: Mac OS X (aarch64) version 15.5
Java Version: 21.0.7, Microsoft
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft
Memory: 200699648 bytes (191 MiB) / 826277888 bytes (788 MiB) up to 4294967296 bytes (4096 MiB)
CPUs: 8
Processor Vendor: Apple Inc.
Processor Name: Apple M1
Identifier: Apple Inc. Family 0x1b588bb3 Model 0 Stepping 0
Microarchitecture: ARM64 SoC: Firestorm + Icestorm
Frequency (GHz): 3.20
Number of physical packages: 1
Number of physical CPUs: 8
Number of logical CPUs: 8
Graphics card #0 name: Apple M1
Graphics card #0 vendor: Apple (0x106b)
Graphics card #0 VRAM (MiB): 0.00
Graphics card #0 deviceId: unknown
Graphics card #0 versionInfo: unknown
Memory slot #0 capacity (MiB): 0.00
Memory slot #0 clockSpeed (GHz): 0.00
Memory slot #0 type: unknown
Virtual memory max (MiB): 10240.00
Virtual memory used (MiB): 7140.69
Swap memory total (MiB): 2048.00
Swap memory used (MiB): 635.38
Space in storage for jna.tmpdir (MiB): <path not set>
Space in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB): <path not set>
Space in storage for io.netty.native.workdir (MiB): <path not set>
Space in storage for java.io.tmpdir (MiB): available: 94968.50, total: 233752.44
Space in storage for workdir (MiB): available: 94968.50, total: 233752.44
JVM Flags: 2 total; -Xms512m -Xmx4096m
Fabric Mods:
fabric-api: Fabric API 0.128.1+1.21.5
fabric-api-base: Fabric API Base 0.4.62+73a52b4b49
fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.6.96+86c3a9f149
fabric-biome-api-v1: Fabric Biome API (v1) 16.0.7+2dd063df49
fabric-block-api-v1: Fabric Block API (v1) 1.1.0+ed91556f49
fabric-block-view-api-v2: Fabric BlockView API (v2) 1.0.26+aa6d566c49
fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 2.0.16+86c3a9f149
fabric-client-tags-api-v1: Fabric Client Tags 1.1.37+86c3a9f149
fabric-command-api-v1: Fabric Command API (v1) 1.2.70+f71b366f49
fabric-command-api-v2: Fabric Command API (v2) 2.2.49+73a52b4b49
fabric-commands-v0: Fabric Commands (v0) 0.2.87+df3654b349
fabric-content-registries-v0: Fabric Content Registries (v0) 10.0.14+3e6c1f7d49
fabric-convention-tags-v1: Fabric Convention Tags 2.1.33+7f945d5b49
fabric-convention-tags-v2: Fabric Convention Tags (v2) 2.15.2+6d9989f349
fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.3.12+86c3a9f149
fabric-data-attachment-api-v1: Fabric Data Attachment API (v1) 1.8.5+6d9989f349
fabric-data-generation-api-v1: Fabric Data Generation API (v1) 22.5.2+a0fab30c49
fabric-dimensions-v1: Fabric Dimensions API (v1) 4.0.17+3e6c1f7d49
fabric-entity-events-v1: Fabric Entity Events (v1) 2.1.0+3ce7866349
fabric-events-interaction-v0: Fabric Events Interaction (v0) 4.0.15+64e3057949
fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.70+c327076a49
fabric-item-api-v1: Fabric Item API (v1) 11.4.1+e46fd76a49
fabric-item-group-api-v1: Fabric Item Group API (v1) 4.2.9+3459fc6149
fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.63+ecf51cdc49
fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.61+df3654b349
fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 2.6.0+230071a049
fabric-loot-api-v2: Fabric Loot API (v2) 3.0.48+3f89f5a549
fabric-loot-api-v3: Fabric Loot API (v3) 1.0.36+86c3a9f149
fabric-message-api-v1: Fabric Message API (v1) 6.1.0+fe971bba49
fabric-model-loading-api-v1: Fabric Model Loading API (v1) 5.2.3+5281b90749
fabric-networking-api-v1: Fabric Networking API (v1) 4.5.0+775be32c49
fabric-object-builder-api-v1: Fabric Object Builder API (v1) 21.1.2+b8d6ba7049
fabric-particles-v1: Fabric Particles (v1) 4.1.2+112e550e49
fabric-recipe-api-v1: Fabric Recipe API (v1) 8.1.8+3235ab3249
fabric-registry-sync-v0: Fabric Registry Sync (v0) 6.1.22+cd64004349
fabric-renderer-api-v1: Fabric Renderer API (v1) 6.1.2+bdf4842249
fabric-renderer-indigo: Fabric Renderer - Indigo 3.1.2+5281b90749
fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.3.64+73761d2e49
fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 3.1.27+86c3a9f149
fabric-rendering-v1: Fabric Rendering (v1) 11.3.0+a272b33849
fabric-resource-conditions-api-v1: Fabric Resource Conditions API (v1) 5.0.21+73a52b4b49
fabric-resource-loader-v0: Fabric Resource Loader (v0) 3.1.7+847e5f5c49
fabric-screen-api-v1: Fabric Screen API (v1) 2.0.46+86c3a9f149
fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.3.129+c327076a49
fabric-sound-api-v1: Fabric Sound API (v1) 1.0.38+86c3a9f149
fabric-tag-api-v1: Fabric Tag API (v1) 1.0.17+ecf51cdc49
fabric-transfer-api-v1: Fabric Transfer API (v1) 5.4.24+7b20cbb049
fabric-transitive-access-wideners-v1: Fabric Transitive Access Wideners (v1) 6.3.17+f17a180c49
fabricloader: Fabric Loader 0.16.14
mixinextras: MixinExtras 0.4.1
hm-api: HM Api 1.0.1+1.21.2
java: OpenJDK 64-Bit Server VM 21
minecraft: Minecraft 1.21.5
polymer-bundled: Polymer 0.12.6+1.21.5
polymer-autohost: Polymer (Auto Host) 0.12.6+1.21.5
io_netty_netty-codec-http: netty-codec-http 4.1.82
polymer-blocks: Polymer (Textured Blocks) 0.12.6+1.21.5
polymer-common: Polymer (Common) 0.12.6+1.21.5
packet_tweaker: Packet Tweaker 0.6.0-pre.1+1.21.2-pre3
polymer-core: Polymer (Core) 0.12.6+1.21.5
polymer-networking: Polymer (Networking) 0.12.6+1.21.5
polymer-registry-sync-manipulator: Polymer (Registry Sync Manipulator) 0.12.6+1.21.5
polymer-resource-pack: Polymer (Resource Pack) 0.12.6+1.21.5
polymer-resource-pack-extras: Polymer (Resource Pack Extras) 0.12.6+1.21.5
polymer-sound-patcher: Polymer (Sound Patcher) 0.12.6+1.21.5
polymer-virtual-entity: Polymer (Virtual Entity) 0.12.6+1.21.5
Launched Version: 1.21.5
Launcher name: PrismLauncher
Backend library: LWJGL version 3.3.3-snapshot
Backend API: Unknown
Window size: <not initialized>
GFLW Platform: <error>
Render Extensions: ERR
GL debug messages: <no renderer available>
Is Modded: Definitely; Client brand changed to 'fabric'
Universe: 404
Type: Client (map_client.txt)
Locale: en_US
System encoding: UTF-8
File encoding: UTF-8
CPU: 8x Apple M1
Seems like it is likely HM API's fault for modifying the return value to an incompatible subclass, though Polymer is also doing an unchecked cast here.
They shouldn't be wrapping the payload codec here, instead implement things with mixins.
Polymer's implementation is similar (as in functionally the same) to one provided by fabric api.