[BUG] 私聊界面点击自己头像查看自己主页报错
描述问题
无意间我点开一个聊天界面,点自己头像,发现居然打不开自己的主页,会显示加载错误,本以为是网络问题,但是点别人的头像却能加载出来
复现方法
复现问题的步骤:
1.点击某位私聊 2.点击自己头像
期望的行为
希望私聊界面点击自己头像能显示自己的主页
实际的行为
目前点了会报错显示加载失败
截图
https://github.com/user-attachments/assets/15fa8feb-61cf-434d-802b-b9a5414e07ea
日志
[debug] | 12:44:39 455ms | start app...
[debug] | 12:44:39 468ms | connect to database
[debug] | 12:44:39 469ms | init database file at /data/user/0/com.ruik0.tsdm/files/db/mainV2.db
[debug] | 12:44:39 483ms | load cookie from database with login user uid: ****734
[debug] | 12:44:39 484ms | build no-cookie with cookie: null
[debug] | 12:44:39 516ms | RootLocationCubit: enter page /homepage
[debug] | 12:44:39 519ms | ForumHomeRepository: fetch home page
[debug] | 12:44:39 519ms | build cookie with user info: null
[debug] | 12:44:39 520ms | ProfileRepository: fetch profile page v2
[debug] | 12:44:39 520ms | build cookie with user info: null
[debug] | 12:44:42 95ms | ForumHomeRepository: use fetched home page
[debug] | 12:44:42 97ms | CookieProvider: save authed cookie to storage
[debug] | 12:44:42 101ms | AuthenticationRepository: save logged user info: UserLoginInfo{ username=******, uid=****734,
[debug] | 12:44:42 110ms | CookieProvider: update user info: UserLoginInfo{ username=******, uid=****734,
[debug] | 12:44:42 111ms | CookieProvider: complete user info updated, sync cookie
[debug] | 12:44:42 115ms | AuthenticationRepository: login with document: user UserLoginInfo{ username=******, uid=****734,
[debug] | 12:44:42 117ms | NotificationBloc: updating all notifications...
[debug] | 12:44:42 119ms | NotificationBloc: fetch notification since 2025-01-22 12:24:20
[debug] | 12:44:42 119ms | build cookie with user info: null
[error] | 12:44:42 223ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: YQ17, imageUrl: ): empty image url
[error] | 12:44:42 223ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: TR83, imageUrl: ): empty image url
[error] | 12:44:42 223ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: ruik0, imageUrl: ): empty image url
[error] | 12:44:42 224ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: dodo_123, imageUrl: ): empty image url
[error] | 12:44:42 224ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: 黑影君, imageUrl: ): empty image url
[error] | 12:44:42 224ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: oogamisak, imageUrl: ): empty image url
[error] | 12:44:42 225ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: viki1213, imageUrl: ): empty image url
[error] | 12:44:42 225ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: 羊推終成眷屬, imageUrl: ): empty image url
[error] | 12:44:42 225ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: zhangsan123456, imageUrl: ): empty image url
[error] | 12:44:42 225ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: 雾落樱散离, imageUrl: ): empty image url
[error] | 12:44:42 225ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: 貌猫qwq, imageUrl: ): empty image url
[error] | 12:44:42 225ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: 完美谢幕, imageUrl: ): empty image url
[error] | 12:44:42 225ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: 路西法之猫, imageUrl: ): empty image url
[error] | 12:44:42 225ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: Ericum, imageUrl: ): empty image url
[error] | 12:44:42 225ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: 琴吹紬, imageUrl: ): empty image url
[error] | 12:44:42 225ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: 玖熏, imageUrl: ): empty image url
[error] | 12:44:42 225ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: 青柳紫苑, imageUrl: ): empty image url
[error] | 12:44:42 227ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: Strillian, imageUrl: ): empty image url
[error] | 12:44:42 228ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: AIUD, imageUrl: ): empty image url
[error] | 12:44:42 228ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: ding.suihong, imageUrl: ): empty image url
[error] | 12:44:42 230ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: lyrika, imageUrl: ): empty image url
[error] | 12:44:42 230ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: fatshark2000, imageUrl: ): empty image url
[error] | 12:44:42 230ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: YoyoHye, imageUrl: ): empty image url
[error] | 12:44:42 230ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: sunfull, imageUrl: ): empty image url
[error] | 12:44:42 230ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: yamada., imageUrl: ): empty image url
[error] | 12:44:42 230ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: sevilcry, imageUrl: ): empty image url
[error] | 12:44:42 230ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: misaka_14514, imageUrl: ): empty image url
[error] | 12:44:42 230ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: Aquaus, imageUrl: ): empty image url
[error] | 12:44:42 230ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: 是莫莫喵, imageUrl: ): empty image url
[error] | 12:44:42 231ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: 喵喵喵将军, imageUrl: ): empty image url
[error] | 12:44:42 234ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: qicaiyunjian, imageUrl: ): empty image url
[error] | 12:44:42 234ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: 惠惠家的逗之助, imageUrl: ): empty image url
[error] | 12:44:42 234ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: 饺子, imageUrl: ): empty image url
[debug] | 12:44:43 403ms | NotificationBloc: saving notification: notice=0 personalMessage=0 broadcastMessage=0
[debug] | 12:44:43 415ms | NotificationBloc: load local notification: notice=81 personalMessage=1 broadcastMessage=0
[debug] | 12:44:47 407ms | RootLocationCubit: enter page /notice
[error] | 12:44:48 444ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: 徕卡酱, imageUrl: ): empty image url
[debug] | 12:44:51 608ms | RootLocationCubit: enter page /chat/history/:uid
[debug] | 12:44:51 609ms | build cookie with user info: null
[debug] | 12:44:53 683ms | ImageCacheProvider: save unrecorded user avatar for user 您
[debug] | 12:44:53 695ms | ImageCacheProvider: save unrecorded user avatar for user 您
[debug] | 12:44:55 640ms | NotificationBloc: mark notice: RecordMarkPersonalMessage(uid: 1889734, peerUid: 2207015, alreadyRead: true)
[debug] | 12:44:55 961ms | RootLocationCubit: leave page /chat/history/:uid
[debug] | 12:44:56 373ms | RootLocationCubit: enter page /chat/history/:uid
[debug] | 12:44:56 373ms | build cookie with user info: null
[debug] | 12:45:02 259ms | RootLocationCubit: enter page /profile
[debug] | 12:45:02 260ms | ProfileRepository: fetch profile page
[debug] | 12:45:02 260ms | build cookie with user info: null
[error] | 12:45:04 17ms | ProfileBloc: failed to parse user profile
[debug] | 12:45:04 874ms | ProfileRepository: fetch profile page
[debug] | 12:45:04 874ms | build cookie with user info: null
[error] | 12:45:06 932ms | ProfileBloc: failed to parse user profile
[debug] | 12:45:11 86ms | ProfileRepository: fetch profile page
[debug] | 12:45:11 86ms | build cookie with user info: null
[error] | 12:45:13 154ms | ProfileBloc: failed to parse user profile
[debug] | 12:45:14 490ms | RootLocationCubit: leave page /profile
[debug] | 12:45:14 633ms | NotificationBloc: mark notice: RecordMarkPersonalMessage(uid: 1889734, peerUid: 2207015, alreadyRead: true)
[debug] | 12:45:14 949ms | RootLocationCubit: leave page /chat/history/:uid
[debug] | 12:45:15 328ms | RootLocationCubit: leave page /notice
[debug] | 12:45:16 72ms | RootLocationCubit: enter page /notice
[debug] | 12:45:17 756ms | RootLocationCubit: enter page /chat/history/:uid
[debug] | 12:45:17 757ms | build cookie with user info: null
[debug] | 12:45:20 563ms | RootLocationCubit: enter page /profile
[debug] | 12:45:20 564ms | ProfileRepository: fetch profile page
[debug] | 12:45:20 564ms | build cookie with user info: null
[error] | 12:45:22 679ms | ProfileBloc: failed to parse user profile
[debug] | 12:45:34 8ms | ProfileRepository: fetch profile page
[debug] | 12:45:34 9ms | build cookie with user info: null
[error] | 12:45:36 398ms | ProfileBloc: failed to parse user profile
[debug] | 12:46:43 89ms | RootLocationCubit: leave page /profile
[debug] | 12:46:43 792ms | NotificationBloc: mark notice: RecordMarkPersonalMessage(uid: 1889734, peerUid: 2207015, alreadyRead: true)
[debug] | 12:46:44 121ms | RootLocationCubit: leave page /chat/history/:uid
[debug] | 12:46:44 415ms | RootLocationCubit: enter page /chat/history/:uid
[debug] | 12:46:44 416ms | build cookie with user info: null
[debug] | 12:46:49 135ms | RootLocationCubit: enter page /profile
[debug] | 12:46:49 136ms | ProfileRepository: fetch profile page
[debug] | 12:46:49 136ms | build cookie with user info: null
[error] | 12:46:51 143ms | ProfileBloc: failed to parse user profile
[debug] | 12:46:52 522ms | RootLocationCubit: leave page /profile
[debug] | 12:47:59 526ms | NotificationBloc: mark notice: RecordMarkPersonalMessage(uid: 1889734, peerUid: 2207015, alreadyRead: true)
[debug] | 12:47:59 850ms | RootLocationCubit: leave page /chat/history/:uid
[debug] | 12:48:00 366ms | RootLocationCubit: leave page /notice
[debug] | 12:48:05 502ms | RootLocationCubit: enter page /notice
[error] | 12:48:06 67ms | failed to render image: failed to load image for ImageCacheUserAvatarRequest(username: 徕卡酱, imageUrl: ): empty image url
[debug] | 12:48:06 842ms | RootLocationCubit: enter page /chat/history/:uid
[debug] | 12:48:06 842ms | build cookie with user info: null
[debug] | 12:48:09 701ms | RootLocationCubit: enter page /profile
[debug] | 12:48:09 701ms | ProfileRepository: fetch profile page
[debug] | 12:48:09 701ms | build cookie with user info: null
[error] | 12:48:12 203ms | ProfileBloc: failed to parse user profile
[debug] | 12:48:12 990ms | RootLocationCubit: leave page /profile
[debug] | 12:48:13 12ms | NotificationBloc: mark notice: RecordMarkPersonalMessage(uid: 1889734, peerUid: 2207015, alreadyRead: true)
[debug] | 12:48:13 343ms | RootLocationCubit: leave page /chat/history/:uid
[debug] | 12:48:13 591ms | RootLocationCubit: enter page /profile
[debug] | 12:48:13 592ms | ProfileRepository: fetch profile page
[debug] | 12:48:13 592ms | build cookie with user info: null
[error] | 12:48:17 224ms | _ErrorHandler: Instance of 'RequestOptions' DioExceptionType.badResponse: null,This exception was thrown because the response has a status code of 404 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 404 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.
[exception] | 12:48:17 225ms | ImageCacheProvider: handle error:
HttpHandshakeFailedException(message: This exception was thrown because the response has a status code of 404 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 404 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.
, statusCode: 404, headers: content-type: text/html
date: Wed, 22 Jan 2025 04:48:19 GMT
content-length: 1163
server: Microsoft-IIS/7.5
, stackTrace: #0 new AppException (package:tsdm_client/exceptions/exceptions.dart:72)
#1 new _HttpHandshakeFailedException&AppException&HttpHandshakeFailedExceptionMappable (package:tsdm_client/exceptions/exceptions.dart)
#2 new HttpHandshakeFailedException (package:tsdm_client/exceptions/exceptions.dart:109)
#3 mapException (package:tsdm_client/shared/providers/net_client_provider/net_client_provider.dart:22)
#4 new TaskEither.tryCatch.<anonymous closure> (package:fpdart/src/task_either.dart:282)
<asynchronous suspension>
#5 ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:234)
<asynchronous suspension>
#6 CachedImageProvider._onImageError (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:64)
<asynchronous suspension>
#7 CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:114)
<asynchronous suspension>
#8 MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1013)
<asynchronous suspension>
)
StackTrace: #0 new AppException (package:tsdm_client/exceptions/exceptions.dart:72)
#1 new _HttpHandshakeFailedException&AppException&HttpHandshakeFailedExceptionMappable (package:tsdm_client/exceptions/exceptions.dart)
#2 new HttpHandshakeFailedException (package:tsdm_client/exceptions/exceptions.dart:109)
#3 mapException (package:tsdm_client/shared/providers/net_client_provider/net_client_provider.dart:22)
#4 new TaskEither.tryCatch.<anonymous closure> (package:fpdart/src/task_either.dart:282)
<asynchronous suspension>
#5 ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:234)
<asynchronous suspension>
#6 CachedImageProvider._onImageError (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:64)
<asynchronous suspension>
#7 CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:114)
<asynchronous suspension>
#8 MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1013)
<asynchronous suspension>
}
[warning] | 12:48:17 232ms | ImageCacheProvider: exception thrown when trying to update image cache: HttpHandshakeFailedException(message: This exception was thrown because the response has a status code of 404 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 404 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.
, statusCode: 404, headers: content-type: text/html
date: Wed, 22 Jan 2025 04:48:19 GMT
content-length: 1163
server: Microsoft-IIS/7.5
, stackTrace: #0 new AppException (package:tsdm_client/exceptions/exceptions.dart:72)
#1 new _HttpHandshakeFailedException&AppException&HttpHandshakeFailedExceptionMappable (package:tsdm_client/exceptions/exceptions.dart)
#2 new HttpHandshakeFailedException (package:tsdm_client/exceptions/exceptions.dart:109)
#3 mapException (package:tsdm_client/shared/providers/net_client_provider/net_client_provider.dart:22)
#4 new TaskEither.tryCatch.<anonymous closure> (package:fpdart/src/task_either.dart:282)
<asynchronous suspension>
#5 ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:234)
<asynchronous suspension>
#6 CachedImageProvider._onImageError (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:64)
<asynchronous suspension>
#7 CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:114)
<asynchronous suspension>
#8 MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1013)
<asynchronous suspension>
), for url: https://www.tsdm39.com/uc_server/data/avatar/002/20/70/15_avatar_middle.jpg
[error] | 12:48:17 233ms | failed to render image: failed to load image https://www.tsdm39.com/uc_server/data/avatar/002/20/70/15_avatar_middle.jpg: HttpHandshakeFailedException(message: This exception was thrown because the response has a status code of 404 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 404 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.
, statusCode: 404, headers: content-type: text/html
date: Wed, 22 Jan 2025 04:48:19 GMT
content-length: 1163
server: Microsoft-IIS/7.5
, stackTrace: #0 new AppException (package:tsdm_client/exceptions/exceptions.dart:72)
#1 new _HttpHandshakeFailedException&AppException&HttpHandshakeFailedExceptionMappable (package:tsdm_client/exceptions/exceptions.dart)
#2 new HttpHandshakeFailedException (package:tsdm_client/exceptions/exceptions.dart:109)
#3 mapException (package:tsdm_client/shared/providers/net_client_provider/net_client_provider.dart:22)
#4 new TaskEither.tryCatch.<anonymous closure> (package:fpdart/src/task_either.dart:282)
<asynchronous suspension>
#5 ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:234)
<asynchronous suspension>
#6 CachedImageProvider._onImageError (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:64)
<asynchronous suspension>
#7 CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:114)
<asynchronous suspension>
#8 MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1013)
<asynchronous suspension>
)
[debug] | 12:48:19 827ms | RootLocationCubit: leave page /profile
[debug] | 12:48:20 320ms | RootLocationCubit: leave page /notice
[debug] | 12:48:20 667ms | RootLocationCubit: enter page /settings
[debug] | 12:48:23 481ms | SettingsBloc: settings value changed: enableDebugOperations<bool>: true
[debug] | 12:48:24 561ms | RootLocationCubit: enter page /debugLog
[debug] | 12:48:32 266ms | RootLocationCubit: leave page /debugLog
[debug] | 12:48:33 470ms | RootLocationCubit: enter page /notice
[debug] | 12:48:35 61ms | RootLocationCubit: enter page /chat/history/:uid
[debug] | 12:48:35 61ms | build cookie with user info: null
[debug] | 12:48:37 679ms | RootLocationCubit: enter page /profile
[debug] | 12:48:37 679ms | ProfileRepository: fetch profile page
[debug] | 12:48:37 679ms | build cookie with user info: null
[error] | 12:48:39 594ms | ProfileBloc: failed to parse user profile
[debug] | 12:48:40 392ms | NotificationBloc: mark notice: RecordMarkPersonalMessage(uid: 1889734, peerUid: 2207015, alreadyRead: true)
[debug] | 12:48:40 445ms | RootLocationCubit: leave page /profile
[debug] | 12:48:40 702ms | RootLocationCubit: leave page /chat/history/:uid
[debug] | 12:48:41 272ms | RootLocationCubit: leave page /notice
[debug] | 12:48:55 578ms | RootLocationCubit: enter page /about
[debug] | 12:53:00 640ms | RootLocationCubit: leave page /about
[debug] | 12:53:05 386ms | RootLocationCubit: enter page /debugLog
环境
平台
根据实际情况勾选
- [x] Android
- [ ] iOS
- [ ] Linux
- [ ] macOS
- [ ] Windows
系统版本
鸿蒙4.2(aosp12)
应用信息
## Info
* Version: 1.1.0+38.df2f55f6 (1469) (2025-01-15)
* Flutter: 3.27.1 stable (17025dd882)
* Dart: 3.6.0 (stable)
备注
貌似1.0.0版本就有了
麻烦佬看下这个问题。最开始发现的时候人在外面,用的移动流量。现在回家了用的wifi也不行
在看的,不用催(
在看的,不用催(
欧克欧克
是我多嘴了
嗯,应该价格needs traige标签或者assign一下
嗯,应该价格needs traige标签或者assign一下
所以是个小问题吗佬?
现在的实现无法分辨一条消息是自己是发送方还是接收方导致的。
可以粗暴地匹配,但感觉不太好。
这个bug影响不大,而且不算常用功能,等后续重构的改掉吧,现在关的话到时候又忘了。
现在的实现无法分辨一条消息是自己是发送方还是接收方导致的。
可以粗暴地匹配,但感觉不太好。
这个bug影响不大,而且不算常用功能,等后续重构的改掉吧,现在关的话到时候又忘了。
好的👌
这个问题刚才1.2.0版本试了下,还在