-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Closed
Labels
Milestone
Description
问题描述
当通过 Announcements.get(fid)
获取指定公告的时候出现反序列化异常
复现
val bot = BotFactory.newBot(0, "").alsoLogin()
val announcements = bot.getGroup(...)!!.announcements
announcements.asFlow().collect { announcement ->
// Caused by: kotlinx.serialization.MissingFieldException: Field 'msg' is required for type with serial name 'net.mamoe.mirai.internal.contact.announcement.GroupAnnouncement', but it was missing
announcements.get(announcement.fid)
}
mirai-core 版本
2.14.0
bot-protocol
ANDROID_PHONE
其他组件版本
No response
系统日志
2023-02-16 15:21:22 I/Bot 2240189254: Bot login successful.
Exception in thread "main" kotlinx.serialization.MissingFieldException: Field 'msg' is required for type with serial name 'net.mamoe.mirai.internal.contact.announcement.GroupAnnouncement', but it was missing at path: $
at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:90)
at kotlinx.serialization.json.Json.decodeFromString(Json.kt:95)
at net.mamoe.mirai.utils.JsonStructKt.loadAs(JsonStruct.kt:26)
at net.mamoe.mirai.utils.JsonStructKt.loadAs$default(JsonStruct.kt:25)
at net.mamoe.mirai.internal.contact.announcement.AnnouncementProtocol.getGroupAnnouncement(AnnouncementsImpl.kt:302)
at net.mamoe.mirai.internal.contact.announcement.AnnouncementProtocol$getGroupAnnouncement$1.invokeSuspend(AnnouncementsImpl.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at net.mamoe.mirai.internal.deps.io.ktor.utils.io.internal.CancellableReusableContinuation.resumeWith(CancellableReusableContinuation.kt:93)
at net.mamoe.mirai.internal.deps.io.ktor.utils.io.ByteBufferChannel.resumeClosed(ByteBufferChannel.kt:2156)
at net.mamoe.mirai.internal.deps.io.ktor.utils.io.ByteBufferChannel.close(ByteBufferChannel.kt:136)
at net.mamoe.mirai.internal.deps.io.ktor.utils.io.CoroutinesKt$launchChannel$1.invoke(Coroutines.kt:145)
at net.mamoe.mirai.internal.deps.io.ktor.utils.io.CoroutinesKt$launchChannel$1.invoke(Coroutines.kt:144)
at kotlinx.coroutines.InvokeOnCompletion.invoke(JobSupport.kt:1392)
at kotlinx.coroutines.JobSupport.notifyCompletion(JobSupport.kt:1520)
at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:323)
at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:240)
at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:906)
at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:863)
at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:828)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:100)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
Caused by: kotlinx.serialization.MissingFieldException: Field 'msg' is required for type with serial name 'net.mamoe.mirai.internal.contact.announcement.GroupAnnouncement', but it was missing
at kotlinx.serialization.internal.PluginExceptionsKt.throwMissingFieldException(PluginExceptions.kt:20)
at net.mamoe.mirai.internal.contact.announcement.GroupAnnouncement.<init>(GroupAnnouncement.kt:40)
at net.mamoe.mirai.internal.contact.announcement.GroupAnnouncement$$serializer.deserialize(GroupAnnouncement.kt:40)
at net.mamoe.mirai.internal.contact.announcement.GroupAnnouncement$$serializer.deserialize(GroupAnnouncement.kt:40)
at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)
... 27 more
网络日志
No response
补充信息
测试用群公告如图: