Skip to content

Ghost block remains client-side after block placement on Fabric #2827

Description

@Alexteens24

Describe the bug and how to replicate it

Description

Sometimes when a player places a block, the block appears normally on the client but does not seem to actually exist on the server.

The block becomes a persistent client-side ghost block.

Steps to reproduce

  1. Run a Fabric 26.1.2 server with Grim enabled.
  2. Place blocks normally.
  3. Occasionally, a placed block becomes a ghost block.
  4. Break the affected block.
  5. No item is dropped, suggesting that the block never actually existed server-side.
  6. Try to jump or stand on the affected position.
  7. The client still appears to have collision with the ghost block and the player can get stuck.
  8. Disconnect and reconnect to the server.
  9. The ghost block disappears immediately after reconnecting.

Expected behavior

If a block placement is rejected or cancelled, the client should be resynchronized with the actual server block state immediately.

Actual behavior

The client continues to render the block and retain its collision until the player reconnects.

The default Grim block resynchronization handler is enabled:

disable-default-resync-handler: false

I have not yet identified which specific block placement check triggers the issue.

I can provide verbose output or additional testing if needed.

Grim version

2.3.74-2614909

Server version

Fabric 26.1.2

Client version

Fabric 1.21.11-26.1.2

Affected Platform(s)

Fabric

Plugins/Mods

[11:44:42] [main/INFO]: Loading Minecraft 26.1.2 with Fabric Loader 0.19.3
[11:44:42] [main/INFO]: Mappings not present!
[11:44:43] [main/INFO]: Loading 236 mods:
- alternate-current 1.9.0
- antixray 1.4.16
|-- com_moandjiezana_toml_toml4j 0.7.2
-- fabric-permissions-api-v0 0.7.0
- balm 26.1.2.11
-- kuma_api 26.1.2.2
- banhammer 0.17.0-pre.1+26.1
|-- com_mysql_mysql-connector-j 9.5.0
-- fabric-permissions-api-v0 0.7.0
- chunky 1.5.3
- cloth-config 26.1.154
-- cloth-basic-math 0.6.1
- clumps 26.1.2.1
- cristellib 3.1.11
-- blue_endless_jankson 1.2.3
- discord_mc_chat 3.0.0-beta.2
- easyauth 3.4.3-SNAPSHOT.48
|-- at_favre_lib_bcrypt 0.10.2
|-- at_favre_lib_bytes 1.6.1
|-- de_mkammerer_argon2-jvm 2.12
|-- de_mkammerer_argon2-jvm-nolibs 2.12
|-- net_java_dev_jna_jna 5.16.0
|-- org_iq80_leveldb_leveldb 0.12
|-- org_iq80_leveldb_leveldb-api 0.12
-- org_postgresql_postgresql 42.7.10
- fabric-api 0.155.2+26.1.2
|-- fabric-api-base 2.0.3+ece063234c
|-- fabric-api-lookup-api-v1 2.0.12+d5a053b64c
|-- fabric-biome-api-v1 18.0.5+2fa62b4e4c
|-- fabric-block-api-v1 3.0.2+ec56b6014c
|-- fabric-block-getter-api-v2 2.0.6+ec56b6014c
|-- fabric-command-api-v2 3.0.5+e2bdee784c
|-- fabric-content-registries-v0 11.3.0+0082c9664c
|-- fabric-convention-tags-v2 4.6.2+4f11f7994c
|-- fabric-crash-report-info-v1 1.0.3+9f78a5a84c
|-- fabric-creative-tab-api-v1 5.0.11+d871b99e4c
|-- fabric-data-attachment-api-v1 2.2.9+44a0bd1d4c
|-- fabric-data-generation-api-v1 24.3.3+cda368334c
|-- fabric-debug-api-v1 1.0.1+c792624d4c
|-- fabric-dimensions-v1 5.1.7+ad343a8d4c
|-- fabric-entity-events-v1 5.0.2+e2bdee784c
|-- fabric-events-interaction-v0 5.2.2+07b380be4c
|-- fabric-game-rule-api-v1 4.0.5+d871b99e4c
|-- fabric-item-api-v1 14.3.0+6d1aaa724c
|-- fabric-key-mapping-api-v1 2.0.4+e2bdee784c
|-- fabric-lifecycle-events-v1 4.1.1+df84eb3d4c
|-- fabric-loot-api-v3 3.0.12+00a1fba64c
|-- fabric-menu-api-v1 2.0.14+d871b99e4c
|-- fabric-message-api-v1 7.0.5+dae8ce3e4c
|-- fabric-model-loading-api-v1 8.0.11+c80601bb4c
|-- fabric-networking-api-v1 6.3.1+554860db4c
|-- fabric-object-builder-api-v1 23.1.0+abb459f14c
|-- fabric-particles-v1 5.0.15+b61fef434c
|-- fabric-permission-api-v1 1.0.2+7437387b4c
|-- fabric-recipe-api-v1 9.0.16+be4b75ae4c
|-- fabric-registry-sync-v0 7.1.0+2fa62b4e4c
|-- fabric-renderer-api-v1 13.0.8+c80601bb4c
|-- fabric-renderer-indigo 8.1.5+1403e82c4c
|-- fabric-rendering-fluids-v1 6.0.1+d871b99e4c
|-- fabric-rendering-v1 23.3.1+e9207d814c
|-- fabric-resource-conditions-api-v1 6.1.0+83dd0ba34c
|-- fabric-resource-loader-v0 3.3.17+4fc5413f4c
|-- fabric-resource-loader-v1 2.0.10+7c44c7324c
|-- fabric-screen-api-v1 5.1.0+981dd9b24c
|-- fabric-serialization-api-v1 2.0.3+11a26f314c
|-- fabric-sound-api-v1 2.0.4+11a26f314c
|-- fabric-tag-api-v1 2.1.1+371cf5db4c
|-- fabric-transfer-api-v1 8.0.6+357ea7334c
-- fabric-transitive-access-wideners-v1 8.1.3+3ff549fb4c
- fabric-language-kotlin 1.13.13+kotlin.2.4.10
|-- org_jetbrains_kotlin_kotlin-reflect 2.4.10
|-- org_jetbrains_kotlin_kotlin-stdlib 2.4.10
|-- org_jetbrains_kotlin_kotlin-stdlib-jdk7 2.4.10
|-- org_jetbrains_kotlin_kotlin-stdlib-jdk8 2.4.10
|-- org_jetbrains_kotlinx_atomicfu-jvm 0.33.0
|-- org_jetbrains_kotlinx_kotlinx-coroutines-core-jvm 1.11.0
|-- org_jetbrains_kotlinx_kotlinx-coroutines-jdk8 1.11.0
|-- org_jetbrains_kotlinx_kotlinx-datetime-jvm 0.8.0
|-- org_jetbrains_kotlinx_kotlinx-io-bytestring-jvm 0.9.1
|-- org_jetbrains_kotlinx_kotlinx-io-core-jvm 0.9.1
|-- org_jetbrains_kotlinx_kotlinx-serialization-cbor-jvm 1.11.0
|-- org_jetbrains_kotlinx_kotlinx-serialization-core-jvm 1.11.0
-- org_jetbrains_kotlinx_kotlinx-serialization-json-jvm 1.11.0
- fabricloader 0.19.3
-- mixinextras 0.5.4
- ferritecore 9.0.0
- flan 26.1.2-1.12.7-fabric
-- lingua_bib 26.1.2-1.0.6-fabric
- floodgate 2.2.6-SNAPSHOT
|-- aopalliance_aopalliance 1.0
|-- cloud 2.0.0-beta.16
| |-- io_leangen_geantyref_geantyref 1.3.15
| |-- org_incendo_cloud-brigadier 2.0.0-beta.15
| |-- org_incendo_cloud-core 2.0.0
| |-- org_incendo_cloud-minecraft-modded-common 2.0.0-beta.16
| -- org_incendo_cloud-services 2.0.0
|-- com_google_guava_failureaccess 1.0.1
|-- fabric-permissions-api-v0 0.7.0
|-- jakarta_inject_jakarta_inject-api 2.0.1
|-- javax_inject_javax_inject 1
|-- org_geysermc_cumulus_cumulus 1.1.2
|-- org_geysermc_event_events 1.1-SNAPSHOT
|-- org_geysermc_geyser_common_unshaded 2.2.1-SNAPSHOT
|-- org_java-websocket_java-websocket 1.6.0
-- org_lanternpowered_lmbda 2.0.0
- geyser-fabric 2.10.1-SNAPSHOT
|-- cloud 2.0.0-beta.16
| |-- io_leangen_geantyref_geantyref 1.3.15
| |-- org_incendo_cloud-brigadier 2.0.0-beta.15
| |-- org_incendo_cloud-core 2.0.0
| |-- org_incendo_cloud-minecraft-modded-common 2.0.0-beta.16
| -- org_incendo_cloud-services 2.0.0
|-- com_google_code_findbugs_jsr305 3.0.2
|-- com_google_errorprone_error_prone_annotations 2.27.0
|-- com_google_j2objc_j2objc-annotations 1.3
|-- com_nukkitx_natives 1.0.3
|-- fabric-permissions-api-v0 0.7.0
|-- io_airlift_aircompressor 0.27
|-- io_netty_netty-codec-haproxy 4.2.7
|-- net_jodah_expiringmap 0.5.10
|-- net_kyori_adventure-text-serializer-commons 4.25.0
|-- net_kyori_adventure-text-serializer-json-legacy-impl 4.25.0
|-- net_kyori_adventure-text-serializer-legacy 4.25.0
|-- net_kyori_examination-api 1.3.0
|-- net_kyori_examination-string 1.3.0
|-- net_kyori_option 1.1.0
|-- net_lenni0451_commons_gson 1.9.0
|-- net_lenni0451_commons_httpclient 1.9.0
|-- net_raphimc_minecraftauth 5.0.0
|-- org_bitbucket_b_c_jose4j 0.9.6
|-- org_bstats_bstats-base 3.1.0
|-- org_cloudburstmc_math_api 2.0
|-- org_cloudburstmc_math_immutable 2.0
|-- org_cloudburstmc_nbt 3.0.4
|-- org_geysermc_api_base-api 1.0.3
|-- org_geysermc_cumulus_cumulus 1.1.2
|-- org_geysermc_event_events 1.1-SNAPSHOT
|-- org_jspecify_jspecify 1.0.0
-- org_lanternpowered_lmbda 2.0.0
- grimac 2.3.74-2614909
|-- ac_grim_grimac_shared 2.3.74-2614909
|-- grimac-fabric-official 2.3.74-2614909
| |-- ac_grim_grimac_common 2.3.74-2614909
| |-- ac_grim_grimac_grim-internal 1.6.0.9
| |-- ac_grim_grimac_grimapi 1.6.0.9
| |-- ac_grim_grimac_shared 2.3.74-2614909
| |-- com_github_alexheretic_dynamics 4.0
| |-- com_github_alexheretic_fluent 2.0
| |-- com_googlecode_json-simple_json-simple 1.1.1
| |-- com_lmax_disruptor 3.4.4
| |-- com_zaxxer_hikaricp 7.0.2
| |-- github_scarsz_configuralize_slim 1.4.1
| |-- grimac-fabric-mc261 2.3.74-2614909
| |-- net_kyori_examination-api 1.3.0
| |-- net_kyori_examination-string 1.3.0
| |-- org_incendo_cloud-annotations 2.0.0
| |-- org_incendo_cloud-processors-requirements 1.0.0-rc.1
| |-- org_jetbrains_annotations 24.1.0
| -- org_slf4j_slf4j-api 2.0.17
-- packetevents 2.13.1+4d40422-SNAPSHOT
|-- com_github_retrooper_api 2.13.1+4d40422-SNAPSHOT
|-- com_github_retrooper_fabric-common 2.13.1+4d40422-SNAPSHOT
|-- com_github_retrooper_netty-common 2.13.1+4d40422-SNAPSHOT
|-- conditional-mixin 0.6.4
|-- net_kyori_adventure-api 4.26.1
|-- net_kyori_adventure-key 4.26.1
|-- net_kyori_adventure-nbt 4.26.1
|-- net_kyori_adventure-text-logger-slf4j 4.26.1
|-- net_kyori_examination-api 1.3.0
|-- net_kyori_examination-string 1.3.0
-- packetevents-fabric-official 2.13.1+4d40422-SNAPSHOT
-- packetevents-fabric-mc261 2.13.1+4d40422-SNAPSHOT
- huskhomes 4.11-ab42970
|-- adventure-platform-fabric 6.9.0
| |-- net_kyori_adventure-api 4.26.1
| |-- net_kyori_adventure-key 4.26.1
| |-- net_kyori_adventure-platform-api 4.4.1
| |-- net_kyori_adventure-platform-mod-shared 6.9.0
| |-- net_kyori_adventure-text-logger-slf4j 4.26.1
| |-- net_kyori_adventure-text-minimessage 4.26.1
| |-- net_kyori_adventure-text-serializer-ansi 4.26.1
| |-- net_kyori_adventure-text-serializer-gson 4.26.1
| |-- net_kyori_adventure-text-serializer-json 4.26.1
| |-- net_kyori_adventure-text-serializer-plain 4.26.1
| |-- net_kyori_ansi 1.1.1
| |-- net_kyori_examination-api 1.3.0
| |-- net_kyori_examination-string 1.3.0
| -- net_kyori_option 1.1.0
|-- com_fatboyindustrial_gson-javatime-serialisers_gso6b8820f28ed4bb 1.1.2
|-- com_google_code_gson_gson 2.13.2
|-- com_h2database_h2 2.3.232
|-- com_zaxxer_hikaricp 7.0.2
|-- commons-io_commons-io 2.21.0
|-- de_exlll_configlib-core 4.8.1
|-- de_exlll_configlib-yaml 4.8.1
|-- fabric-permissions-api-v0 0.7.0
|-- huskhomes_common 4.11-ab42970
|-- net_impactdev_impactor_api_economy_dev-slim 5.3.4
|-- net_kyori_adventure-text-minimessage 4.26.1
|-- net_william278_desertwell 2.0.7
|-- org_apache_commons_commons-pool2 2.13.1
|-- org_apache_commons_commons-text 1.15.0
|-- org_mariadb_jdbc_mariadb-java-client 3.5.3
|-- org_snakeyaml_snakeyaml-engine 2.10
|-- placeholder-api 3.0.0+26.1
|-- redis_clients_authentication_redis-authx-core 0.1.1-beta2
|-- redis_clients_jedis 6.0.0
-- toilet 1.1.0
- incendium 5.4.12
- invview 1.4.20-26.1+
|-- fabric-permissions-api-v0 0.7.0
-- sgui 2.0.0+26.1
- java 25
- krypton 0.3.0
-- com_velocitypowered_velocity-native 3.4.0-SNAPSHOT
- ledger 1.3.22
|-- com_fasterxml_jackson_core_jackson-annotations 2.12.2
|-- com_fasterxml_jackson_core_jackson-core 2.12.2
|-- com_fasterxml_jackson_core_jackson-databind 2.12.2
|-- com_fasterxml_jackson_datatype_jackson-datatype-jsr310 2.12.2
|-- com_fasterxml_jackson_module_jackson-module-kotlin 2.12.2
|-- com_moandjiezana_toml_toml4j 0.7.2
|-- com_uchuhimo_konf-core 1.1.2
|-- com_uchuhimo_konf-toml 1.1.2
|-- fabric-permissions-api-v0 0.7.0
|-- org_javassist_javassist 3.26.0-GA
|-- org_jetbrains_exposed_exposed-core 1.0.0-rc-2
|-- org_jetbrains_exposed_exposed-dao 1.0.0-rc-2
|-- org_jetbrains_exposed_exposed-java-time 1.0.0-rc-2
|-- org_jetbrains_exposed_exposed-jdbc 1.0.0-rc-2
-- org_reflections_reflections 0.9.12
- levels 1.0.0-SNAPSHOT
|-- org_xerial_sqlite-jdbc 3.53.2.1
-- placeholder-api 3.0.0+26.1
- lithium 0.24.7+mc26.1.2
- lithostitched 1.7.13
- luckperms 5.5.57
-- fabric-permissions-api-v0 0.7.0
- minecraft 26.1.2
- minimotd-fabric 2.2.3
-- adventure-platform-fabric 6.9.0
|-- net_kyori_adventure-api 4.26.1
|-- net_kyori_adventure-key 4.26.1
|-- net_kyori_adventure-platform-api 4.4.1
|-- net_kyori_adventure-platform-mod-shared 6.9.0
|-- net_kyori_adventure-text-logger-slf4j 4.26.1
|-- net_kyori_adventure-text-minimessage 4.26.1
|-- net_kyori_adventure-text-serializer-ansi 4.26.1
|-- net_kyori_adventure-text-serializer-gson 4.26.1
|-- net_kyori_adventure-text-serializer-json 4.26.1
|-- net_kyori_adventure-text-serializer-plain 4.26.1
|-- net_kyori_ansi 1.1.1
|-- net_kyori_examination-api 1.3.0
|-- net_kyori_examination-string 1.3.0
-- net_kyori_option 1.1.0
- moonrise 1.0.0+1234f5d
-- fabric-api-base 2.0.3+ece063234c
- mr_dungeons_andtaverns 5.2.0
- mr_true_ending 1-v1.1.4d
- nullscape 1.2.20
- servercore 1.5.19+26.1.2
|-- fabric-permissions-api-v0 0.7.0
|-- org_yaml_snakeyaml 2.6
|-- placeholder-api 3.0.0+26.1
|-- space_arim_dazzleconf_dazzleconf-core 1.3.0-M2
-- space_arim_dazzleconf_dazzleconf-ext-snakeyaml 1.3.0-M2
- shogi 26.1.2.7
-- shogi_api 26.1.2.7
- skinsrestorer 15.12.3
-- fabric-permissions-api-v0 0.7.0
- spark 1.10.173
-- fabric-permissions-api-v0 0.7.0
- sqlite-jdbc 3.53.2.0+2026-06-06
- sswaystones 1.3.2
|-- fabric-permissions-api-v0 0.7.0
|-- polymer-core 0.16.0-pre.4+26.1
| |-- polymer-networking 0.16.0-pre.4+26.1
| | -- polymer-common 0.16.0-pre.4+26.1
| -- polymer-registry-sync-manipulator 0.16.0-pre.4+26.1
|-- polymer-virtual-entity 0.16.0-pre.4+26.1
| -- polymer-common 0.16.0-pre.4+26.1
-- server_translations_api 3.0.3+26.1
- t_and_t 1.13.11
- tab 6.0.3
- terralith 2.6.2
- vanish 1.6.15+26.1.2
|-- com_typesafe_config 1.4.1
|-- fabric-permissions-api-v0 0.7.0
|-- org_spongepowered_configurate-core 4.1.2
|-- org_spongepowered_configurate-hocon 4.1.2
|-- placeholder-api 3.0.0+26.1
-- player-data-api 0.10.0+26.1
- viabackwards 5.12.0-SNAPSHOT
- viafabric 0.4.21+176-26.x
-- viafabric-mc26-1 0.4.21+176-26.x
- viaversion 5.12.0-SNAPSHOT
- voicechat 2.6.22+26.1.2
|-- fabric-key-mapping-api-v1 2.0.4+e2bdee7847
|-- fabric-rendering-v1 23.0.4+10de3da347
-- voicechat_api 2.6.20

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions