BlueBubblesApp / bluebubbles-app

A cross-platform app ecosystem, bringing iMessage to Android, PC (Windows, Linux, & even macOS), and Web!
https://bluebubbles.app
Apache License 2.0
711 stars 99 forks source link

Next Release Checklist (v1.14.0) #2782

Open zlshames opened 1 month ago

zlshames commented 1 month ago

Bug fix Checklist

This error seems like it's because the we are trying to read the size of the URL preview as a string, but for some reason it's already a Size object. This is the payload data when the parsing fails:

BlueBubblesApp] {size: Instance of 'Size', URL: {NS.relative: https://photos.zillowstatic.com/fp/deb5f3a7af2406119d54dbdcb7150f3b-cc_ft_1536.jpg}}
[SyncManager] Incremental Sync Error: AsyncExecutorError: AsyncTask execution error
│ -- Cause: FormatException: Invalid double
│ 
│ #0      double.parse (dart:core-patch/double_patch.dart:113)
│ #1      new MediaMetadata.fromJson (package:bluebubbles/models/global/payload_data.dart:116)
│ #2      new UrlPreviewData.fromJson (package:bluebubbles/models/global/payload_data.dart:78)
│ #3      new PayloadData.fromJson.<anonymous closure> (package:bluebubbles/models/global/payload_data.dart:20)
│ #4      MappedIterable.elementAt (dart:_internal/iterable.dart:385)
│ #5      ListIterator.moveNext (dart:_internal/iterable.dart:354)
│ #6      new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:189)
│ #7      new _GrowableList.of (dart:core-patch/growable_array.dart:150)
│ #8      new List.of (dart:core-patch/array_patch.dart:39)
│ #9      ListIterable.toList (dart:_internal/iterable.dart:224)
│ #10     new PayloadData.fromJson (package:bluebubbles/models/global/payload_data.dart:20)
│ #11     Message.dbPayloadData= (package:bluebubbles/models/io/message.dart:304)
│ #12     getObjectBoxModel.<anonymous closure> (package:bluebubbles/objectbox.g.dart:1580)
│ #13     EntityDefinition.objectFromData (package:objectbox/src/modelinfo/entity_definition.dart:43)
│ #14     CursorHelper._deserializeObject (package:objectbox/src/native/bindings/helpers.dart:128)
│ #15     CursorHelper.get (package:objectbox/src/native/bindings/helpers.dart:137)
│ #16     Box.get.<anonymous closure> (package:objectbox/src/native/box.dart:350)
│ #17     Store._runInTransaction (package:objectbox/src/native/store.dart:776)
│ #18     InternalStoreAccess.runInTransaction (package:objectbox/src/native/store.dart:894)
│ #19     Box.get (package:objectbox/src/native/box.dart:349)
│ #20     ToOne.target (package:objectbox/src/relations/to_one.dart:84)
│ #21     Attachment.merge (package:bluebubbles/models/io/attachment.dart:263)
│ #22     syncAttachments (package:bluebubbles/helpers/backend/sync/sync_helpers.dart:119)
│ #23     BulkSyncMessages.run.<anonymous closure> (package:bluebubbles/services/backend/sync/tasks/sync_tasks.dart:176)
│ #24     Store.runInTransaction.<anonymous closure> (package:objectbox/src/native/store.dart:628)
│ #25     Store._runInTransaction (package:objectbox/src/native/store.dart:776)
│ #26     Store.runInTransaction (package:objectbox/src/native/store.dart:628)
│ #27     BulkSyncMessages.run (package:bluebubbles/services/backend/sync/tasks/sync_tasks.dart:135)
│ [SyncManager] Incremental Sync Error: AsyncExecutorError: AsyncTask execution error
│ -- Cause: FormatException: Invalid double
│ 
│ #0      ObjectVisitorError.throwIfError (package:objectbox/src/native/bindings/data_visitor.dart:58)
│ #1      Query.find (package:objectbox/src/native/query/query.dart:1080)
│ #2      syncMessages (package:bluebubbles/helpers/backend/sync/sync_helpers.dart:174)
│ #3      BulkSyncMessages.run.<anonymous closure> (package:bluebubbles/services/backend/sync/tasks/sync_tasks.dart:183)
BlueBubblesApp] Stacktrace: #0      List.first (dart:core-patch/growable_array.dart:344)
│ #1      ChatCreatorState.build.<anonymous closure>.<anonymous closure> (package:bluebubbles/app/layouts/chat_creator/chat_creator.dart:598)
│ #2      SliverChildBuilderDelegate.build (package:flutter/src/widgets/scroll_delegate.dart:490)
│ #3      SliverMultiBoxAdaptorElement._build (package:flutter/src/widgets/sliver.dart:938)
│ #4      SliverMultiBoxAdaptorElement.performRebuild.processElement (package:flutter/src/widgets/sliver.dart:868)

Testing Checklist

zlshames commented 1 month ago

I believe both invalid double errors were caused by the same "bad code". The one for the.find() call I think was the same error, but the stack trace was just concatenated maybe...

zlshames commented 1 month ago

cant seem to fix the back gesture causing the app to exit when opening via a notification. Might be a flutter bug, or we are doing something wrong. However, the Back Button Interceptor package had the same issue as using PopScope. Basically, the pop callback isnt being called, no matter what i try. It's not logging anything, even in the dispose function...