Ledger icon indicating copy to clipboard operation
Ledger copied to clipboard

java.util.NoSuchElementException: Collection is empty.

Open rdamron opened this issue 5 months ago • 6 comments

Expected behavior

Minecraft: 1.20.1 Ledger: 1.2.8 Prominence II, v3.1.53hf2

Ledger should log block actions to database.

Observed/actual behavior

[15:21:18] [DefaultDispatcher-worker-2/WARN]: Exception occurred while attempting to commit action. Skipping. java.util.NoSuchElementException: Collection is empty. at kotlin.collections.CollectionsKt___CollectionsKt.first(_Collections.kt:208) ~[org_jetbrains_kotlin_kotlin-stdlib-2.2.0-5a92c7063d3a6ebc.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager.selectWorld(DatabaseManager.kt:516) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager.access$selectWorld(DatabaseManager.kt:56) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$insertAction$1.invoke(DatabaseManager.kt:390) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$insertAction$1.invoke(DatabaseManager.kt:382) ~[ledger-1.2.8.jar:?] at org.jetbrains.exposed.dao.EntityClass.new(EntityClass.kt:273) ~[ledger-1.2.8.jar:?] at org.jetbrains.exposed.dao.EntityClass.new(EntityClass.kt:247) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager.insertAction(DatabaseManager.kt:382) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager.access$insertAction(DatabaseManager.kt:56) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$1$1$1.invokeSuspend(DatabaseManager.kt:72) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$1$1$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$1$1$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$execute$2$1.invokeSuspend(DatabaseManager.kt:346) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$execute$2$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$execute$2$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?] at org.jetbrains.exposed.sql.transactions.experimental.SuspendedKt$suspendedTransactionAsyncInternal$1.invokeSuspend(Suspended.kt:127) ~[ledger-1.2.8.jar:?] at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[org_jetbrains_kotlin_kotlin-stdlib-2.2.0-5a92c7063d3a6ebc.jar:?] at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] [15:21:18] [DefaultDispatcher-worker-7/ERROR]: Uncaught exception in thread "DefaultDispatcher-worker-7" java.util.NoSuchElementException: Collection is empty. at kotlin.collections.CollectionsKt___CollectionsKt.first(_Collections.kt:208) ~[org_jetbrains_kotlin_kotlin-stdlib-2.2.0-5a92c7063d3a6ebc.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager.selectWorld(DatabaseManager.kt:516) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager.access$selectWorld(DatabaseManager.kt:56) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$insertAction$1.invoke(DatabaseManager.kt:390) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$insertAction$1.invoke(DatabaseManager.kt:382) ~[ledger-1.2.8.jar:?] at org.jetbrains.exposed.dao.EntityClass.new(EntityClass.kt:273) ~[ledger-1.2.8.jar:?] at org.jetbrains.exposed.dao.EntityClass.new(EntityClass.kt:247) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager.insertAction(DatabaseManager.kt:382) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager.access$insertAction(DatabaseManager.kt:56) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$1$1$1.invokeSuspend(DatabaseManager.kt:72) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$1$1$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$1$1$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$execute$2$1.invokeSuspend(DatabaseManager.kt:346) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$execute$2$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?] at com.github.quiltservertools.ledger.database.DatabaseManager$execute$2$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?] at org.jetbrains.exposed.sql.transactions.experimental.SuspendedKt$suspendedTransactionAsyncInternal$1.invokeSuspend(Suspended.kt:127) ~[ledger-1.2.8.jar:?] at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[org_jetbrains_kotlin_kotlin-stdlib-2.2.0-5a92c7063d3a6ebc.jar:?] at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException

Steps/models to reproduce

Run server with supported Kotlin and ledger. Fails to log block changes. Error occurs at start up.

What operating system are you running

Linux

Minecraft version

1.20.1

Ledger version

1.2.8

Logs

https://gist.github.com/rdamron/7ae6d69f884228c9665027fe29401342

Agreements

  • [x] I am running the latest version of the mod.
  • [x] My version of Minecraft is supported.
  • [x] I have searched for and ensured there isn't already an open issue regarding this.

Other

I assume 1.20.1 being a well supported version in the community is still supported. I hope im checking these boxes correctly.

rdamron avatar Aug 10 '25 23:08 rdamron

Having the same issue, along with 2 others I can see from looking through the discord support forum: https://discord.com/channels/764543203772334100/1403528155930693713/1403528155930693713

WardenDrew avatar Aug 10 '25 23:08 WardenDrew

What are the odds that downgrading the Kotlin version wont bork other stuff in the modpack?

Modrinth lists this with the version for Kotlin: Fabric Language Kotlin 1.9.6+kotlin.1.8.22

Pack comes with: fabric-language-kotlin-1.13.4+kotlin.2.2.0.jar

rdamron avatar Aug 11 '25 01:08 rdamron

Well I gave fabric-language-kotlin-1.10.18+kotlin.1.9.22.jar a try. This was the lowest version of Kotlin I could make work with the other mods in the pack. This did not work. :(

rdamron avatar Aug 11 '25 03:08 rdamron

I noticed that when on the older version of Kotlin I don't get this error stopping the server. Latest version I do. This leads me to believe that it's a Kotlin library issue. Not sure what to do about that honestly except give up on the mod or hope one of the devs will back port a fix into the older version. Given that 1.20.1 is by far the largest downloaded version (85k vs <10k), maybe there is hope?

java.lang.NoSuchMethodError: 'long kotlin.time.Duration$Companion.minutes-UwyO8pc(long)' at com.github.quiltservertools.ledger.Ledger$serverStopped$1.invokeSuspend(Ledger.kt:95) ~[ledger-1.2.8.jar:?] at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[org_jetbrains_kotlin_kotlin-stdlib-2.2.0-5a92c7063d3a6ebc.jar:?] at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?] at com.github.quiltservertools.ledger.Ledger.serverStopped(Ledger.kt:94) ~[ledger-1.2.8.jar:?] at net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents.lambda$static$6(ServerLifecycleEvents.java:76) ~[fabric-lifecycle-events-v1-2.2.2+1802ada577-1de3c1c74dd2e6f7.jar:?] at net.minecraft.server.MinecraftServer.handler$dmi000$fabric-lifecycle-events-v1$afterShutdownServer(MinecraftServer.java:10352) ~[server-intermediary.jar:?] at net.minecraft.server.MinecraftServer.shutdown(MinecraftServer.java:619) ~[server-intermediary.jar:?] at net.minecraft.server.dedicated.MinecraftDedicatedServer.shutdown(MinecraftDedicatedServer.java:537) ~[server-intermediary.jar:?] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:703) ~[server-intermediary.jar:?] at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:265) ~[server-intermediary.jar:?] at java.lang.Thread.run(Thread.java:840) ~[?:?]

rdamron avatar Aug 11 '25 04:08 rdamron

Can echo this issue with this modpack

RephlexZero avatar Nov 16 '25 01:11 RephlexZero

I am also experiencing this issue. Nothing except player join / leave timestamps are being recorded.

[02:18:15] [DefaultDispatcher-worker-7/WARN]: Exception occurred while attempting to commit action. Skipping.
java.util.NoSuchElementException: Collection is empty.
	at kotlin.collections.CollectionsKt___CollectionsKt.first(_Collections.kt:208) ~[org_jetbrains_kotlin_kotlin-stdlib-2.2.21-84ba7abf467a5769.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager.selectWorld(DatabaseManager.kt:516) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager.access$selectWorld(DatabaseManager.kt:56) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$insertAction$1.invoke(DatabaseManager.kt:390) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$insertAction$1.invoke(DatabaseManager.kt:382) ~[ledger-1.2.8.jar:?]
	at org.jetbrains.exposed.dao.EntityClass.new(EntityClass.kt:273) ~[ledger-1.2.8.jar:?]
	at org.jetbrains.exposed.dao.EntityClass.new(EntityClass.kt:247) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager.insertAction(DatabaseManager.kt:382) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager.access$insertAction(DatabaseManager.kt:56) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$1$1$1.invokeSuspend(DatabaseManager.kt:72) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$1$1$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$1$1$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$execute$2$1.invokeSuspend(DatabaseManager.kt:346) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$execute$2$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$execute$2$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?]
	at org.jetbrains.exposed.sql.transactions.experimental.SuspendedKt$suspendedTransactionAsyncInternal$1.invokeSuspend(Suspended.kt:127) ~[ledger-1.2.8.jar:?]
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34) ~[org_jetbrains_kotlin_kotlin-stdlib-2.2.21-84ba7abf467a5769.jar:?]
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?]
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?]
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?]
[02:18:15] [DefaultDispatcher-worker-7/ERROR]: Uncaught exception in thread "DefaultDispatcher-worker-7"
java.util.NoSuchElementException: Collection is empty.
	at kotlin.collections.CollectionsKt___CollectionsKt.first(_Collections.kt:208) ~[org_jetbrains_kotlin_kotlin-stdlib-2.2.21-84ba7abf467a5769.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager.selectWorld(DatabaseManager.kt:516) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager.access$selectWorld(DatabaseManager.kt:56) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$insertAction$1.invoke(DatabaseManager.kt:390) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$insertAction$1.invoke(DatabaseManager.kt:382) ~[ledger-1.2.8.jar:?]
	at org.jetbrains.exposed.dao.EntityClass.new(EntityClass.kt:273) ~[ledger-1.2.8.jar:?]
	at org.jetbrains.exposed.dao.EntityClass.new(EntityClass.kt:247) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager.insertAction(DatabaseManager.kt:382) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager.access$insertAction(DatabaseManager.kt:56) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$1$1$1.invokeSuspend(DatabaseManager.kt:72) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$1$1$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$1$1$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$execute$2$1.invokeSuspend(DatabaseManager.kt:346) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$execute$2$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?]
	at com.github.quiltservertools.ledger.database.DatabaseManager$execute$2$1.invoke(DatabaseManager.kt) ~[ledger-1.2.8.jar:?]
	at org.jetbrains.exposed.sql.transactions.experimental.SuspendedKt$suspendedTransactionAsyncInternal$1.invokeSuspend(Suspended.kt:127) ~[ledger-1.2.8.jar:?]
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34) ~[org_jetbrains_kotlin_kotlin-stdlib-2.2.21-84ba7abf467a5769.jar:?]
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?]
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?]
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704) ~[org_jetbrains_kotlinx_kotlinx-co-jvm-1.10.2-dc3d13b93361afd1.jar:?]
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException

latest.log

SnaveSutit avatar Nov 23 '25 14:11 SnaveSutit