diff --git a/mirai-core/src/commonMain/kotlin/message/offlineSourceImpl.kt b/mirai-core/src/commonMain/kotlin/message/offlineSourceImpl.kt index 9c361879e..632f67600 100644 --- a/mirai-core/src/commonMain/kotlin/message/offlineSourceImpl.kt +++ b/mirai-core/src/commonMain/kotlin/message/offlineSourceImpl.kt @@ -168,7 +168,9 @@ internal fun OfflineMessageSourceImplData( targetId = when { groupIdOrZero != 0L -> groupIdOrZero delegate.toUin != 0L -> delegate.toUin - delegate.srcMsg != null -> delegate.srcMsg.loadAs(MsgComm.Msg.serializer()).msgHead.toUin + delegate.srcMsg != null -> runCatching { + delegate.srcMsg.loadAs(MsgComm.Msg.serializer()).msgHead.toUin + }.getOrElse { 0L } else -> 0/*error("cannot find targetId. delegate=${delegate._miraiContentToString()}, delegate.srcMsg=${ kotlin.runCatching { delegate.srcMsg?.loadAs(MsgComm.Msg.serializer())?._miraiContentToString() } .fold(