Skip to content

[BUG] 隐藏的bbcode存在异常 #355

@Qing-Novel

Description

@Qing-Novel

确认事项

  • 我已确认网页端论坛的相应页面(如果有)不存在相应的错误行为,这个问题只存在于客户端。

  • 我已在最新稳定版上验证,该问题依然存在。

  • 我已在issue中搜索,确认没有重复或类似issue。

  • 我已确认这个问题不属于已知问题

  • 我确认这个问题不属于安全漏洞(例如账号cookie超时、泄露)。安全漏洞问题不要在此上报,请论坛私信联系ruik0

复现步骤

打开可视化开关后使用隐藏内容功能,标签会多创建一个(在设置查看们看的时候)

预期的结果

设置门槛后依旧只有两个标签

实际的结果

有三个标签

应用信息

Info

  • Version: 1.15.0+55.d060020a (2015) (2026-02-18)
  • Flutter: 3.41.1 stable (582a0e7c55)
  • Dart: 3.11.0 (stable)

环境信息

aosp10

附加信息

现象、信息填写到此处

截图或视频
SVID_20260223_073853_1_2026-02-23_074223.mp4
当次启动日志
[debug] | 7:35:34 977ms | ------------------- start app -------------------
[debug] | 7:35:34 983ms | connect to database
[debug] | 7:35:34 985ms | init database file at /data/user/0/kzs.th000.tsdm_clienu/files/db/mainV2.db
[debug] | 7:35:35 12ms | load cookie from database with login user uid: ****734
[debug] | 7:35:35 12ms | build no-cookie with cookie: null
[debug] | 7:35:35 30ms | InitCubit: deleting outdated image, outdateTime=2026-02-16 07:35:35.030475
[debug] | 7:35:35 57ms | InitCubit: deleted outdated image cache count 1
[info] | 7:35:35 57ms | SettingsDao: failed to get value by name "checkInFeeling": value not exists
[debug] | 7:35:35 58ms | AutoCheckinRepository: run auto checkin for uid ****734, ****419, ****506, ****353
[info] | 7:35:35 58ms | CookieProvider: load cookie from database with given uid: ****734
[debug] | 7:35:35 58ms | CookieProvider: cookie switch to user UserLoginInfo{ username=******, uid=****734, 
[info] | 7:35:35 58ms | CookieProvider: load cookie from database with given uid: ****419
[debug] | 7:35:35 58ms | CookieProvider: cookie switch to user UserLoginInfo{ username=********用, uid=****419, 
[info] | 7:35:35 58ms | CookieProvider: load cookie from database with given uid: ****506
[debug] | 7:35:35 58ms | CookieProvider: cookie switch to user UserLoginInfo{ username=********, uid=****506, 
[info] | 7:35:35 58ms | CookieProvider: load cookie from database with given uid: ****353
[debug] | 7:35:35 58ms | CookieProvider: cookie switch to user UserLoginInfo{ username=*****, uid=****353, 
[debug] | 7:35:35 58ms | build no-cookie with cookie: CookieProvider{ userInfo=UserLoginInfo{ username=******, uid=****734, , cookie=*** }
[debug] | 7:35:35 59ms | build no-cookie with cookie: CookieProvider{ userInfo=UserLoginInfo{ username=********用, uid=****419, , cookie=*** }
[debug] | 7:35:35 59ms | build no-cookie with cookie: CookieProvider{ userInfo=UserLoginInfo{ username=********, uid=****506, , cookie=*** }
[debug] | 7:35:35 59ms | build no-cookie with cookie: CookieProvider{ userInfo=UserLoginInfo{ username=*****, uid=****353, , cookie=*** }
[debug] | 7:35:35 279ms | RootLocationCubit: enter page /homepage
[debug] | 7:35:35 279ms | ForumHomeRepository: fetch home page
[debug] | 7:35:35 279ms | build cookie with user info: null
[debug] | 7:35:35 280ms | ProfileRepository: fetch profile page v2
[debug] | 7:35:35 280ms | build cookie with user info: null
[debug] | 7:35:36 40ms | build cookie with user info: null
[info] | 7:35:36 44ms | _GzipEncodingChecker: removing gzip encoding in request
[debug] | 7:35:37 316ms | ForumHomeRepository: use fetched home page
[debug] | 7:35:37 317ms | CookieProvider: save authed cookie to storage
[debug] | 7:35:37 324ms | AuthenticationRepository: save logged user info: UserLoginInfo{ username=******, uid=****734, 
[debug] | 7:35:37 344ms | CookieProvider: update user info: UserLoginInfo{ username=******, uid=****734, 
[debug] | 7:35:37 344ms | CookieProvider: complete user info updated, sync cookie
[debug] | 7:35:37 349ms | AuthenticationRepository: login with document: user UserLoginInfo{ username=******, uid=****734, 
[debug] | 7:35:37 352ms | NotificationBloc: updating all notifications...
[info] | 7:35:37 353ms | AutoNotificationCubit: start auto fetch with duration 0:01:00.000000
[debug] | 7:35:37 574ms | NotificationBloc: fetch notification since 2026-02-22 20:37:36
[debug] | 7:35:37 574ms | build cookie with user info: null
[info] | 7:35:37 687ms | check in success: 恭喜你签到成功!获得随机奖励 天使币 8 .
[debug] | 7:35:38 228ms | NotificationBloc: saving notification: notice=12 personalMessage=0 broadcastMessage=0 latestTime=2026-02-23 04:32:47
[debug] | 7:35:38 383ms | NotificationBloc: load local notification: notice=500 personalMessage=58 broadcastMessage=7
[debug] | 7:35:38 384ms | NotificationInfoRepository: update auto sync info: NotificationAutoSyncInfoNotice(msg: 三玖奈 回复了您的帖子 今年春节打算怎么过   查看, notice: 12, personalMessage: 0, broadcastMessage: 0, timestamp: 1771803338384)
[debug] | 7:35:38 387ms | NotificationBloc: update last fetch notification time to 2026-02-23 04:32:47
[error] | 7:35:39 12ms | check in result in null: null
[error] | 7:35:39 81ms | check in result in null: null
[error] | 7:35:39 318ms | check in result in null: null
[debug] | 7:35:39 318ms | AutoCheckinRepository: run auto checkin for uid ****356, ****358, ****360, ****362
[info] | 7:35:39 318ms | CookieProvider: load cookie from database with given uid: ****356
[debug] | 7:35:39 318ms | CookieProvider: cookie switch to user UserLoginInfo{ username=*******, uid=****356, 
[info] | 7:35:39 318ms | CookieProvider: load cookie from database with given uid: ****358
[debug] | 7:35:39 318ms | CookieProvider: cookie switch to user UserLoginInfo{ username=******, uid=****358, 
[info] | 7:35:39 318ms | CookieProvider: load cookie from database with given uid: ****360
[debug] | 7:35:39 318ms | CookieProvider: cookie switch to user UserLoginInfo{ username=******, uid=****360, 
[info] | 7:35:39 318ms | CookieProvider: load cookie from database with given uid: ****362
[debug] | 7:35:39 318ms | CookieProvider: cookie switch to user UserLoginInfo{ username=*****, uid=****362, 
[debug] | 7:35:39 319ms | build no-cookie with cookie: CookieProvider{ userInfo=UserLoginInfo{ username=*******, uid=****356, , cookie=*** }
[debug] | 7:35:39 319ms | build no-cookie with cookie: CookieProvider{ userInfo=UserLoginInfo{ username=******, uid=****358, , cookie=*** }
[debug] | 7:35:39 319ms | build no-cookie with cookie: CookieProvider{ userInfo=UserLoginInfo{ username=******, uid=****360, , cookie=*** }
[debug] | 7:35:39 319ms | build no-cookie with cookie: CookieProvider{ userInfo=UserLoginInfo{ username=*****, uid=****362, , cookie=*** }
[debug] | 7:35:39 891ms | _HomePageState: push to notice page already in it
[debug] | 7:35:40 1ms | RootLocationCubit: enter page /notice
[info] | 7:35:40 335ms | check in success: 恭喜你签到成功!获得随机奖励 天使币 6 .
[error] | 7:35:41 775ms | check in result in null: null
[error] | 7:35:41 779ms | check in result in null: null
[error] | 7:35:41 783ms | check in result in null: null
[debug] | 7:35:41 783ms | AutoCheckinRepository: run auto checkin for uid ****363, ****364, ****365
[info] | 7:35:41 784ms | CookieProvider: load cookie from database with given uid: ****363
[debug] | 7:35:41 784ms | CookieProvider: cookie switch to user UserLoginInfo{ username=*******, uid=****363, 
[info] | 7:35:41 784ms | CookieProvider: load cookie from database with given uid: ****364
[debug] | 7:35:41 784ms | CookieProvider: cookie switch to user UserLoginInfo{ username=******, uid=****364, 
[info] | 7:35:41 785ms | CookieProvider: load cookie from database with given uid: ****365
[debug] | 7:35:41 785ms | CookieProvider: cookie switch to user UserLoginInfo{ username=******, uid=****365, 
[debug] | 7:35:41 786ms | build no-cookie with cookie: CookieProvider{ userInfo=UserLoginInfo{ username=*******, uid=****363, , cookie=*** }
[debug] | 7:35:41 787ms | build no-cookie with cookie: CookieProvider{ userInfo=UserLoginInfo{ username=******, uid=****364, , cookie=*** }
[debug] | 7:35:41 787ms | build no-cookie with cookie: CookieProvider{ userInfo=UserLoginInfo{ username=******, uid=****365, , cookie=*** }
[debug] | 7:35:42 581ms | NotificationBloc: mark notice: RecordMarkNotice(uid: 1889734, nid: 9950273, alreadyRead: true)
[debug] | 7:35:42 583ms | NotificationBloc: update last fetch notification time to 2026-02-23 04:32:47
[info] | 7:35:43 38ms | check in success: 恭喜你签到成功!获得随机奖励 天使币 9 .
[debug] | 7:35:43 630ms | NotificationBloc: mark notice: RecordMarkNotice(uid: 1889734, nid: 9950272, alreadyRead: true)
[debug] | 7:35:43 631ms | NotificationBloc: update last fetch notification time to 2026-02-23 04:32:47
[debug] | 7:35:44 291ms | NotificationBloc: mark notice: RecordMarkNotice(uid: 1889734, nid: 9950271, alreadyRead: true)
[debug] | 7:35:44 292ms | NotificationBloc: update last fetch notification time to 2026-02-23 04:32:47
[error] | 7:35:44 381ms | check in result in null: null
[error] | 7:35:44 389ms | check in result in null: null
[debug] | 7:35:44 983ms | NotificationBloc: mark notice: RecordMarkNotice(uid: 1889734, nid: 9950270, alreadyRead: true)
[debug] | 7:35:44 983ms | NotificationBloc: update last fetch notification time to 2026-02-23 04:32:47
[debug] | 7:35:45 581ms | NotificationBloc: mark notice: RecordMarkNotice(uid: 1889734, nid: 9950269, alreadyRead: true)
[debug] | 7:35:45 582ms | NotificationBloc: update last fetch notification time to 2026-02-23 04:32:47
[debug] | 7:35:48 475ms | NotificationBloc: mark notice: RecordMarkNotice(uid: 1889734, nid: 9950268, alreadyRead: true)
[debug] | 7:35:48 476ms | NotificationBloc: update last fetch notification time to 2026-02-23 04:32:47
[debug] | 7:35:49 531ms | RootLocationCubit: enter page /autoCheckinDetail
[debug] | 7:35:51 672ms | dispatch url: https://www.tsdm39.com/forum.php?mod=redirect&goto=findpost&ptid=1258560&pid=77657318
[debug] | 7:35:51 705ms | RootLocationCubit: enter page /thread/v1
[debug] | 7:35:51 706ms | build cookie with user info: null
[info] | 7:35:51 708ms | _GzipEncodingChecker: removing gzip encoding in request
[debug] | 7:35:52 502ms | _ThreadPageState: save thread visit history tid=1258560
[debug] | 7:35:52 590ms | _PostListState: scroll to pid: 77657318
[debug] | 7:35:52 590ms | _PostListState: scroll to position: 14
[debug] | 7:35:52 591ms | ThreadVisitHistoryBloc: fetch all succeeded, data count is 87
[error] | 7:35:52 961ms | _ErrorHandler: https://www.tsdm39.com/uc_server/data/avatar/002/22/75/48_avatar_middle.jpg?mobile=no DioExceptionType.badResponse: error: null, status code: 404
[exception] | 7:35:52 961ms | ImageCacheProvider: handle raw 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: date: Sun, 22 Feb 2026 23:35:52 GMT
content-length: 1163
server: Microsoft-IIS/7.5
content-type: text/html
, stackTrace: #0      new AppException (package:tsdm_client/exceptions/exceptions.dart:78)
#1      new _MixinApplication395&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:25)
#4      new TaskEither.tryCatch.<anonymous closure> (package:fpdart/src/task_either.dart:286)
<asynchronous suspension>
#5      ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:209)
<asynchronous suspension>
#6      CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:108)
<asynchronous suspension>
#7      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1021)
<asynchronous suspension>
)
StackTrace: #0      ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:213)
<asynchronous suspension>
#1      CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:108)
<asynchronous suspension>
#2      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1021)
<asynchronous suspension>

[debug] | 7:35:58 970ms | RootLocationCubit: enter page <editor>
[debug] | 7:35:58 987ms | ReplyBarController: update reply action
[debug] | 7:36:06 291ms | build cookie with user info: null
[info] | 7:36:06 785ms | _GzipEncodingChecker: removing gzip encoding in request
[debug] | 7:36:07 390ms | RootLocationCubit: leave page <editor>
[debug] | 7:36:09 484ms | RootLocationCubit: enter page <editor>
[debug] | 7:36:09 494ms | ReplyBarController: update reply action
[debug] | 7:36:17 175ms | build cookie with user info: null
[info] | 7:36:17 909ms | _GzipEncodingChecker: removing gzip encoding in request
[debug] | 7:36:18 637ms | RootLocationCubit: leave page <editor>
[debug] | 7:36:21 211ms | NotificationBloc: mark notice: RecordMarkNotice(uid: 1889734, nid: 9949911, alreadyRead: true)
[debug] | 7:36:21 213ms | NotificationBloc: update last fetch notification time to 2026-02-23 04:32:47
[debug] | 7:36:24 724ms | NotificationBloc: mark notice: RecordMarkNotice(uid: 1889734, nid: 9920293, alreadyRead: true)
[debug] | 7:36:24 727ms | NotificationBloc: update last fetch notification time to 2026-02-23 04:32:47
[debug] | 7:36:25 487ms | dispatch url: https://www.tsdm39.com/forum.php?mod=redirect&goto=findpost&ptid=1256567&pid=77657625
[debug] | 7:36:25 531ms | RootLocationCubit: enter page /thread/v1
[debug] | 7:36:25 532ms | build cookie with user info: null
[info] | 7:36:25 546ms | _GzipEncodingChecker: removing gzip encoding in request
[debug] | 7:36:26 614ms | _ThreadPageState: save thread visit history tid=1256567
[debug] | 7:36:26 686ms | _PostListState: scroll to pid: 77657625
[debug] | 7:36:26 687ms | _PostListState: scroll to position: 4
[debug] | 7:36:28 615ms | RootLocationCubit: enter page <editor>
[debug] | 7:36:28 624ms | ReplyBarController: update reply action
[debug] | 7:36:35 324ms | build cookie with user info: null
[info] | 7:36:35 989ms | _GzipEncodingChecker: removing gzip encoding in request
[debug] | 7:36:36 735ms | RootLocationCubit: leave page <editor>
[debug] | 7:36:37 355ms | AutoNotificationCubit: running auto fetch...
[debug] | 7:36:37 358ms | AutoNotificationCubit: auto fetch since 1771792368
[debug] | 7:36:37 358ms | build cookie with user info: null
[debug] | 7:36:37 895ms | AutoNotificationCubit: auto fetch finished with data
[debug] | 7:36:37 895ms | AutoNotificationCubit: update last fetch notification time to started time 2026-02-23 07:36:37.356056
[debug] | 7:36:37 898ms | NotificationBloc: saving notification: notice=0 personalMessage=0 broadcastMessage=0 latestTime=null
[debug] | 7:36:38 56ms | NotificationBloc: load local notification: notice=500 personalMessage=58 broadcastMessage=7
[debug] | 7:36:38 846ms | RootLocationCubit: enter page <editor>
[debug] | 7:36:38 850ms | ReplyBarController: update reply action
[debug] | 7:36:46 861ms | build cookie with user info: null
[info] | 7:36:47 323ms | _GzipEncodingChecker: removing gzip encoding in request
[debug] | 7:36:48 338ms | RootLocationCubit: leave page <editor>
[error] | 7:36:52 804ms | 
Null check operator used on a null value
StackTrace: #0      State.context (package:flutter/src/widgets/framework.dart:959)
#1      _NoticeCardV2State._onUrlLaunched (package:tsdm_client/widgets/card/notice_card_v2.dart:52)
#2      _NoticeCardV2State.build.<anonymous closure> (package:tsdm_client/widgets/card/notice_card_v2.dart:168)
#3      _Muncher.munchNode.<anonymous closure> (package:tsdm_client/utils/html/html_muncher.dart:310)
<asynchronous suspension>

[debug] | 7:36:55 459ms | NotificationBloc: mark notice: RecordMarkNotice(uid: 1889734, nid: 9950076, alreadyRead: true)
[debug] | 7:36:56 93ms | NotificationBloc: mark notice: RecordMarkNotice(uid: 1889734, nid: 9950176, alreadyRead: true)
[debug] | 7:36:56 587ms | dispatch url: https://www.tsdm39.com/forum.php?mod=redirect&goto=findpost&ptid=1260566&pid=77658588
[debug] | 7:36:56 617ms | RootLocationCubit: enter page /thread/v1
[debug] | 7:36:56 617ms | build cookie with user info: null
[info] | 7:36:56 621ms | _GzipEncodingChecker: removing gzip encoding in request
[debug] | 7:36:57 337ms | _ThreadPageState: save thread visit history tid=1260566
[debug] | 7:36:57 402ms | _PostListState: scroll to pid: 77658588
[debug] | 7:36:57 402ms | _PostListState: scroll to position: 4
[exception] | 7:36:57 429ms | ImageCacheProvider: handle raw error: 
HttpHandshakeFailedException(message: <unknown error>, statusCode: null, headers: null, stackTrace: #0      new AppException (package:tsdm_client/exceptions/exceptions.dart:78)
#1      new _MixinApplication395&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:25)
#4      new TaskEither.tryCatch.<anonymous closure> (package:fpdart/src/task_either.dart:286)
<asynchronous suspension>
#5      ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:209)
<asynchronous suspension>
#6      CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:108)
<asynchronous suspension>
#7      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1021)
<asynchronous suspension>
)
StackTrace: #0      ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:213)
<asynchronous suspension>
#1      CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:108)
<asynchronous suspension>
#2      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1021)
<asynchronous suspension>

[error] | 7:36:57 646ms | _ErrorHandler: https://www.tsdm39.com/uc_server/data/avatar/002/23/14/35_avatar_middle.jpg?mobile=no DioExceptionType.badResponse: error: null, status code: 404
[exception] | 7:36:57 648ms | ImageCacheProvider: handle raw 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: date: Sun, 22 Feb 2026 23:36:57 GMT
content-length: 1163
server: Microsoft-IIS/7.5
content-type: text/html
, stackTrace: #0      new AppException (package:tsdm_client/exceptions/exceptions.dart:78)
#1      new _MixinApplication395&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:25)
#4      new TaskEither.tryCatch.<anonymous closure> (package:fpdart/src/task_either.dart:286)
<asynchronous suspension>
#5      ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:209)
<asynchronous suspension>
#6      CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:108)
<asynchronous suspension>
#7      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1021)
<asynchronous suspension>
)
StackTrace: #0      ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:213)
<asynchronous suspension>
#1      CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:108)
<asynchronous suspension>
#2      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1021)
<asynchronous suspension>

[exception] | 7:36:58 343ms | [KtHttp] GET failed on https://images2.imgbox.com/16/98/QTahtvFA_o.gif
PlatformException(KT_HTTP_ERROR, failed to perform http GET, SSL handshake aborted: ssl=0x72bea33ac8: I/O error during system call, Connection reset by peer, null)
StackTrace: #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:653)
#1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:366)
<asynchronous suspension>
#2      _AndroidHttpMethodChannel._get (package:tsdm_client/shared/providers/net_client_provider/net_client_provider_android.dart:21)
<asynchronous suspension>
#3      KotlinHttpClient._get (package:tsdm_client/shared/providers/net_client_provider/net_client_provider_android.dart:131)
<asynchronous suspension>
#4      KotlinHttpClientAdapter.fetch (package:tsdm_client/shared/providers/net_client_provider/net_client_provider_android.dart:186)
<asynchronous suspension>
#5      CancelableCompleter.complete.<anonymous closure> (package:async/src/cancelable_operation.dart:433)
<asynchronous suspension>

[error] | 7:36:58 346ms | _ErrorHandler: https://images2.imgbox.com/16/98/QTahtvFA_o.gif DioExceptionType.unknown: error: ClientException: null raw response, status code: null
[exception] | 7:36:58 348ms | ImageCacheProvider: handle raw error: 
HttpHandshakeFailedException(message: <unknown error>, statusCode: null, headers: null, stackTrace: #0      new AppException (package:tsdm_client/exceptions/exceptions.dart:78)
#1      new _MixinApplication395&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:25)
#4      new TaskEither.tryCatch.<anonymous closure> (package:fpdart/src/task_either.dart:286)
<asynchronous suspension>
#5      ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:209)
<asynchronous suspension>
#6      CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:108)
<asynchronous suspension>
#7      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1021)
<asynchronous suspension>
)
StackTrace: #0      ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:213)
<asynchronous suspension>
#1      CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:108)
<asynchronous suspension>
#2      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1021)
<asynchronous suspension>

[debug] | 7:37:06 298ms | RootLocationCubit: enter page /dialog/jumpPage
[debug] | 7:37:07 394ms | build cookie with user info: null
[exception] | 7:37:07 737ms | [KtHttp] GET failed on https://i.ytimg.com/vi/UNEEk-qg2qg/maxresdefault.jpg
PlatformException(KT_HTTP_ERROR, failed to perform http GET, failed to connect to i.ytimg.com/2a03:2880:f129:83:face:b00c:0:25de (port 443) from /2409:8a00:dd1:ac61:111b:1e78:c67d:4056 (port 40878) after 10000ms, null)
StackTrace: #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:653)
#1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:366)
<asynchronous suspension>
#2      _AndroidHttpMethodChannel._get (package:tsdm_client/shared/providers/net_client_provider/net_client_provider_android.dart:21)
<asynchronous suspension>
#3      KotlinHttpClient._get (package:tsdm_client/shared/providers/net_client_provider/net_client_provider_android.dart:131)
<asynchronous suspension>
#4      KotlinHttpClientAdapter.fetch (package:tsdm_client/shared/providers/net_client_provider/net_client_provider_android.dart:186)
<asynchronous suspension>
#5      CancelableCompleter.complete.<anonymous closure> (package:async/src/cancelable_operation.dart:433)
<asynchronous suspension>

[error] | 7:37:07 740ms | _ErrorHandler: https://i.ytimg.com/vi/UNEEk-qg2qg/maxresdefault.jpg DioExceptionType.unknown: error: ClientException: null raw response, status code: null
[exception] | 7:37:07 742ms | ImageCacheProvider: handle raw error: 
HttpHandshakeFailedException(message: <unknown error>, statusCode: null, headers: null, stackTrace: #0      new AppException (package:tsdm_client/exceptions/exceptions.dart:78)
#1      new _MixinApplication395&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:25)
#4      new TaskEither.tryCatch.<anonymous closure> (package:fpdart/src/task_either.dart:286)
<asynchronous suspension>
#5      ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:209)
<asynchronous suspension>
#6      CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:108)
<asynchronous suspension>
#7      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1021)
<asynchronous suspension>
)
StackTrace: #0      ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:213)
<asynchronous suspension>
#1      CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:108)
<asynchronous suspension>
#2      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1021)
<asynchronous suspension>

[debug] | 7:37:08 24ms | _ThreadPageState: save thread visit history tid=1260566
[debug] | 7:37:08 89ms | _PostListState: scroll to pid: 77658588
[error] | 7:37:09 12ms | _ErrorHandler: https://www.tsdm39.com/uc_server/data/avatar/000/36/68/06_avatar_middle.jpg?mobile=no DioExceptionType.badResponse: error: null, status code: 404
[exception] | 7:37:09 13ms | ImageCacheProvider: handle raw 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: date: Sun, 22 Feb 2026 23:37:08 GMT
content-length: 1163
server: Microsoft-IIS/7.5
content-type: text/html
, stackTrace: #0      new AppException (package:tsdm_client/exceptions/exceptions.dart:78)
#1      new _MixinApplication395&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:25)
#4      new TaskEither.tryCatch.<anonymous closure> (package:fpdart/src/task_either.dart:286)
<asynchronous suspension>
#5      ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:209)
<asynchronous suspension>
#6      CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:108)
<asynchronous suspension>
#7      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1021)
<asynchronous suspension>
)
StackTrace: #0      ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:213)
<asynchronous suspension>
#1      CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:108)
<asynchronous suspension>
#2      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1021)
<asynchronous suspension>

[debug] | 7:37:10 903ms | build cookie with user info: null
[debug] | 7:37:11 459ms | _ThreadPageState: save thread visit history tid=1260566
[debug] | 7:37:13 535ms | RootLocationCubit: enter page <editor>
[debug] | 7:37:13 538ms | ReplyBarController: update reply action
[debug] | 7:37:19 102ms | build cookie with user info: null
[exception] | 7:37:19 397ms | [KtHttp] GET failed on https://i.imgur.com/jwKJp39.jpg
PlatformException(KT_HTTP_ERROR, failed to perform http GET, failed to connect to i.imgur.com/2a03:2880:f10d:83:face:b00c:0:25de (port 443) from /2409:8a00:dd1:ac61:111b:1e78:c67d:4056 (port 34828) after 10000ms, null)
StackTrace: #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:653)
#1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:366)
<asynchronous suspension>
#2      _AndroidHttpMethodChannel._get (package:tsdm_client/shared/providers/net_client_provider/net_client_provider_android.dart:21)
<asynchronous suspension>
#3      KotlinHttpClient._get (package:tsdm_client/shared/providers/net_client_provider/net_client_provider_android.dart:131)
<asynchronous suspension>
#4      KotlinHttpClientAdapter.fetch (package:tsdm_client/shared/providers/net_client_provider/net_client_provider_android.dart:186)
<asynchronous suspension>
#5      CancelableCompleter.complete.<anonymous closure> (package:async/src/cancelable_operation.dart:433)
<asynchronous suspension>

[error] | 7:37:19 399ms | _ErrorHandler: https://i.imgur.com/jwKJp39.jpg DioExceptionType.unknown: error: ClientException: null raw response, status code: null
[exception] | 7:37:19 400ms | ImageCacheProvider: handle raw error: 
HttpHandshakeFailedException(message: <unknown error>, statusCode: null, headers: null, stackTrace: #0      new AppException (package:tsdm_client/exceptions/exceptions.dart:78)
#1      new _MixinApplication395&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:25)
#4      new TaskEither.tryCatch.<anonymous closure> (package:fpdart/src/task_either.dart:286)
<asynchronous suspension>
#5      ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:209)
<asynchronous suspension>
#6      CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:108)
<asynchronous suspension>
#7      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1021)
<asynchronous suspension>
)
StackTrace: #0      ImageCacheProvider.getOrMakeCache (package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart:213)
<asynchronous suspension>
#1      CachedImageProvider._loadAsync (package:tsdm_client/widgets/cached_image/cached_image_provider.dart:108)
<asynchronous suspension>
#2      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1021)
<asynchronous suspension>

[info] | 7:37:19 585ms | _GzipEncodingChecker: removing gzip encoding in request
[debug] | 7:37:20 703ms | RootLocationCubit: leave page <editor>
[debug] | 7:37:21 827ms | RootLocationCubit: enter page <editor>
[debug] | 7:37:21 829ms | ReplyBarController: update reply action
[debug] | 7:37:26 352ms | build cookie with user info: null
[info] | 7:37:26 836ms | _GzipEncodingChecker: removing gzip encoding in request
[exception] | 7:37:27 172ms | ReplyBloc: handle error: 
ReplyToPostResultFailedException(message: null, stackTrace: #0      new AppException (package:tsdm_client/exceptions/exceptions.dart:78)
#1      new _MixinApplication428&AppException&ReplyToPostResultFailedExceptionMappable (package:tsdm_client/exceptions/exceptions.dart)
#2      new ReplyToPostResultFailedException (package:tsdm_client/exceptions/exceptions.dart)
#3      ReplyRepository.replyToPost.<anonymous closure> (package:tsdm_client/widgets/reply_bar/repository/reply_repository.dart:100)
<asynchronous suspension>
#4      ReplyBloc._onReplyToPostRequested (package:tsdm_client/widgets/reply_bar/bloc/reply_bloc.dart:50)
<asynchronous suspension>
#5      Bloc.on.<anonymous closure>.handleEvent (package:bloc/src/bloc.dart:226)
<asynchronous suspension>
)
StackTrace: #0      new AppException (package:tsdm_client/exceptions/exceptions.dart:78)
#1      new _MixinApplication428&AppException&ReplyToPostResultFailedExceptionMappable (package:tsdm_client/exceptions/exceptions.dart)
#2      new ReplyToPostResultFailedException (package:tsdm_client/exceptions/exceptions.dart)
#3      ReplyRepository.replyToPost.<anonymous closure> (package:tsdm_client/widgets/reply_bar/repository/reply_repository.dart:100)
<asynchronous suspension>
#4      ReplyBloc._onReplyToPostRequested (package:tsdm_client/widgets/reply_bar/bloc/reply_bloc.dart:50)
<asynchronous suspension>
#5      Bloc.on.<anonymous closure>.handleEvent (package:bloc/src/bloc.dart:226)
<asynchronous suspension>

[debug] | 7:37:28 248ms | build cookie with user info: null
[info] | 7:37:28 659ms | _GzipEncodingChecker: removing gzip encoding in request
[exception] | 7:37:29 304ms | ReplyBloc: handle error: 
ReplyToPostResultFailedException(message: null, stackTrace: #0      new AppException (package:tsdm_client/exceptions/exceptions.dart:78)
#1      new _MixinApplication428&AppException&ReplyToPostResultFailedExceptionMappable (package:tsdm_client/exceptions/exceptions.dart)
#2      new ReplyToPostResultFailedException (package:tsdm_client/exceptions/exceptions.dart)
#3      ReplyRepository.replyToPost.<anonymous closure> (package:tsdm_client/widgets/reply_bar/repository/reply_repository.dart:100)
<asynchronous suspension>
#4      ReplyBloc._onReplyToPostRequested (package:tsdm_client/widgets/reply_bar/bloc/reply_bloc.dart:50)
<asynchronous suspension>
#5      Bloc.on.<anonymous closure>.handleEvent (package:bloc/src/bloc.dart:226)
<asynchronous suspension>
)
StackTrace: #0      new AppException (package:tsdm_client/exceptions/exceptions.dart:78)
#1      new _MixinApplication428&AppException&ReplyToPostResultFailedExceptionMappable (package:tsdm_client/exceptions/exceptions.dart)
#2      new ReplyToPostResultFailedException (package:tsdm_client/exceptions/exceptions.dart)
#3      ReplyRepository.replyToPost.<anonymous closure> (package:tsdm_client/widgets/reply_bar/repository/reply_repository.dart:100)
<asynchronous suspension>
#4      ReplyBloc._onReplyToPostRequested (package:tsdm_client/widgets/reply_bar/bloc/reply_bloc.dart:50)
<asynchronous suspension>
#5      Bloc.on.<anonymous closure>.handleEvent (package:bloc/src/bloc.dart:226)
<asynchronous suspension>

[debug] | 7:37:30 115ms | build cookie with user info: null
[info] | 7:37:30 840ms | _GzipEncodingChecker: removing gzip encoding in request
[debug] | 7:37:31 753ms | RootLocationCubit: leave page <editor>
[debug] | 7:37:32 280ms | RootLocationCubit: enter page <editor>
[debug] | 7:37:32 285ms | ReplyBarController: update reply action
[debug] | 7:37:37 357ms | AutoNotificationCubit: running auto fetch...
[debug] | 7:37:37 360ms | AutoNotificationCubit: auto fetch since 1771803398
[debug] | 7:37:37 360ms | build cookie with user info: null
[debug] | 7:37:37 891ms | AutoNotificationCubit: auto fetch finished with data
[debug] | 7:37:37 891ms | AutoNotificationCubit: update last fetch notification time to started time 2026-02-23 07:37:37.358230
[debug] | 7:37:37 891ms | NotificationBloc: saving notification: notice=0 personalMessage=0 broadcastMessage=0 latestTime=null
[debug] | 7:37:38 0ms | NotificationBloc: load local notification: notice=500 personalMessage=58 broadcastMessage=7
[debug] | 7:37:38 179ms | build cookie with user info: null
[info] | 7:37:38 583ms | _GzipEncodingChecker: removing gzip encoding in request
[debug] | 7:37:39 239ms | RootLocationCubit: leave page <editor>
[debug] | 7:37:46 9ms | RootLocationCubit: enter page <editor>
[debug] | 7:37:46 12ms | ReplyBarController: update reply action
[debug] | 7:37:54 794ms | build cookie with user info: null
[info] | 7:37:56 541ms | _GzipEncodingChecker: removing gzip encoding in request
[debug] | 7:37:58 195ms | RootLocationCubit: leave page <editor>
[debug] | 7:38:01 362ms | RootLocationCubit: enter page <editor>
[debug] | 7:38:01 372ms | ReplyBarController: update reply action
[debug] | 7:38:02 333ms | RootLocationCubit: leave page <editor>
[debug] | 7:38:05 347ms | RootLocationCubit: enter page <editor>
[debug] | 7:38:05 359ms | ReplyBarController: update reply action
[debug] | 7:38:37 382ms | AutoNotificationCubit: running auto fetch...
[debug] | 7:38:37 384ms | AutoNotificationCubit: auto fetch since 1771803458
[debug] | 7:38:37 384ms | build cookie with user info: null
[debug] | 7:38:38 301ms | AutoNotificationCubit: auto fetch finished with data
[debug] | 7:38:38 301ms | AutoNotificationCubit: update last fetch notification time to started time 2026-02-23 07:38:37.382817
[debug] | 7:38:38 303ms | NotificationBloc: saving notification: notice=0 personalMessage=0 broadcastMessage=0 latestTime=null
[debug] | 7:38:38 447ms | NotificationBloc: load local notification: notice=500 personalMessage=58 broadcastMessage=7
[debug] | 7:39:07 834ms | build cookie with user info: null
[info] | 7:39:08 280ms | _GzipEncodingChecker: removing gzip encoding in request
[debug] | 7:39:08 760ms | RootLocationCubit: leave page <editor>
[error] | 7:39:09 392ms | 
Null check operator used on a null value
StackTrace: #0      State.context (package:flutter/src/widgets/framework.dart:959)
#1      _NoticeCardV2State._onUrlLaunched (package:tsdm_client/widgets/card/notice_card_v2.dart:52)
#2      _NoticeCardV2State.build.<anonymous closure> (package:tsdm_client/widgets/card/notice_card_v2.dart:168)
#3      _Muncher.munchNode.<anonymous closure> (package:tsdm_client/utils/html/html_muncher.dart:310)
<asynchronous suspension>

[debug] | 7:39:10 832ms | dispatch url: https://www.tsdm39.com/forum.php?mod=redirect&goto=findpost&ptid=1260566&pid=77659212
[debug] | 7:39:10 863ms | RootLocationCubit: enter page /thread/v1
[debug] | 7:39:10 863ms | build cookie with user info: null
[info] | 7:39:10 865ms | _GzipEncodingChecker: removing gzip encoding in request
[debug] | 7:39:11 696ms | _ThreadPageState: save thread visit history tid=1260566
[debug] | 7:39:11 737ms | _PostListState: scroll to pid: 77659212
[debug] | 7:39:11 737ms | _PostListState: scroll to position: 8
[debug] | 7:39:17 976ms | _PostEditPageState: enter post edit page: editType=PostEditType.editPost, fid=4
[debug] | 7:39:18 6ms | RootLocationCubit: enter page /editPost/:editType/:fid
[debug] | 7:39:18 7ms | build cookie with user info: null
[debug] | 7:39:37 355ms | AutoNotificationCubit: running auto fetch...
[debug] | 7:39:37 357ms | AutoNotificationCubit: auto fetch since 1771803518
[debug] | 7:39:37 357ms | build cookie with user info: null
[debug] | 7:39:37 708ms | AutoNotificationCubit: auto fetch finished with data
[debug] | 7:39:37 709ms | AutoNotificationCubit: update last fetch notification time to started time 2026-02-23 07:39:37.355445
[debug] | 7:39:37 711ms | NotificationBloc: saving notification: notice=0 personalMessage=0 broadcastMessage=0 latestTime=null
[debug] | 7:39:37 831ms | NotificationBloc: load local notification: notice=500 personalMessage=58 broadcastMessage=7
[debug] | 7:39:39 523ms | build cookie with user info: null
[info] | 7:39:39 542ms | _GzipEncodingChecker: removing gzip encoding in request
[error] | 7:39:41 331ms | 
Null check operator used on a null value
StackTrace: #0      State.context (package:flutter/src/widgets/framework.dart:959)
#1      _NoticeCardV2State._onUrlLaunched (package:tsdm_client/widgets/card/notice_card_v2.dart:52)
#2      _NoticeCardV2State.build.<anonymous closure> (package:tsdm_client/widgets/card/notice_card_v2.dart:168)
#3      _Muncher.munchNode.<anonymous closure> (package:tsdm_client/utils/html/html_muncher.dart:310)
<asynchronous suspension>

[debug] | 7:39:42 379ms | dispatch url: https://www.tsdm39.com/forum.php?mod=redirect&goto=findpost&ptid=1260566&pid=77659212
[debug] | 7:39:42 413ms | RootLocationCubit: enter page /thread/v1
[debug] | 7:39:42 414ms | build cookie with user info: null
[info] | 7:39:42 417ms | _GzipEncodingChecker: removing gzip encoding in request
[debug] | 7:39:43 159ms | _ThreadPageState: save thread visit history tid=1260566
[debug] | 7:39:43 184ms | _PostListState: scroll to pid: 77659212
[debug] | 7:39:43 184ms | _PostListState: scroll to position: 8
[debug] | 7:39:46 904ms | NotificationBloc: mark notice: RecordMarkNotice(uid: 1889734, nid: 9947954, alreadyRead: true)
[debug] | 7:39:48 273ms | RootLocationCubit: enter page /notice
[info] | 7:39:48 759ms | AutoNotificationCubit: stop auto fetch with duration 0:01:00.000000
[info] | 7:39:48 759ms | AutoNotificationCubit: start auto fetch with duration 0:01:00.000000
[debug] | 7:39:49 771ms | RootLocationCubit: enter page /settings
[debug] | 7:39:50 995ms | RootLocationCubit: enter page /about
[debug] | 7:39:54 921ms | RootLocationCubit: enter page /debugLog

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions