Skip to content

macOS: Crash after loading channels/nodes #2

Description

@bplein

First bluetooth scan shows nothing.

Then I stop the scan, restart the scan, and connect to one of my two found bluetooth companions.

Just as it finishes loading nodes and channels, the app crashes and I get an Apple report dialoge from macOS

bill@beastie  /Volumes/ExternalData/source/bplein/meshcore-open   Main ±  flutter run
Connected devices:
macOS (desktop) • macos • darwin-arm64 • macOS 26.1 25B78 darwin-arm64

Checking for wireless devices...

[1]: macOS (macos)
Please choose one (or "q" to quit): 1
Launching lib/main.dart on macOS in debug mode...
Building macOS application...                                           
✓ Built build/macos/Build/Products/Debug/meshcore_open.app
2026-01-02 15:44:21.005 meshcore_open[18957:6090980] Running with merged UI and platform thread. Experimental.
Failed to foreground app; open returned 1
flutter: Error initializing notifications: Invalid argument(s): macOS settings must be set when targeting macOS platform.
flutter: Error initializing notifications: Invalid argument(s): macOS settings must be set when targeting macOS platform.
Syncing files to device macOS...                                    27ms

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h List all available interactive commands.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).

A Dart VM Service on macOS is available at: http://127.0.0.1:60888/bQ5hA1fb3jI=/
The Flutter DevTools debugger and profiler on macOS is available at: http://127.0.0.1:60888/bQ5hA1fb3jI=/devtools/?uri=ws://127.0.0.1:60888/bQ5hA1fb3jI=/ws
2026-01-02 15:44:25.422 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: flutterRestart
2026-01-02 15:44:25.422 meshcore_open[18957:6090980] [FBP-iOS] initializing CBCentralManager
2026-01-02 15:44:25.422 meshcore_open[18957:6090980] [FBP-iOS] showPowerAlert: yes
2026-01-02 15:44:25.422 meshcore_open[18957:6090980] [FBP-iOS] restoreState: no
2026-01-02 15:44:25.422 meshcore_open[18957:6090980] [FBP-iOS] initializing checkForMtuChangesTimer
2026-01-02 15:44:25.422 meshcore_open[18957:6090980] [FBP-iOS] disconnectAllDevices(flutterRestart)
2026-01-02 15:44:25.422 meshcore_open[18957:6090980] [FBP-iOS] connectedPeripherals: 0
2026-01-02 15:44:25.423 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: startScan
[ERROR:flutter/runtime/dart_vm_initializer.cc(40)] Unhandled Exception: PlatformException(startScan, bluetooth must be turned on. (CBManagerStateUnknown), null, null)
#0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:653:7)
#1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:367:18)
<asynchronous suspension>
#2      FlutterBluePlusDarwin._callDarwinMethod (package:flutter_blue_plus_darwin/flutter_blue_plus_darwin.dart:290:17)
<asynchronous suspension>
#3      FlutterBluePlusDarwin.startScan (package:flutter_blue_plus_darwin/flutter_blue_plus_darwin.dart:233:12)
<asynchronous suspension>
#4      FlutterBluePlus._invokePlatform (package:flutter_blue_plus/src/flutter_blue_plus.dart:560:14)
<asynchronous suspension>
#5      FlutterBluePlus.startScan (package:flutter_blue_plus/src/flutter_blue_plus.dart:288:7)
<asynchronous suspension>
#6      MeshCoreConnector.startScan (package:meshcore_open/connector/meshcore_connector.dart:611:5)
<asynchronous suspension>

2026-01-02 15:44:25.484 meshcore_open[18957:6090980] [FBP-iOS] centralManagerDidUpdateState CBManagerStatePoweredOn
flutter: [FBP] stopScan: already stopped
2026-01-02 15:44:43.769 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: startScan
2026-01-02 15:44:46.586 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: stopScan
2026-01-02 15:44:46.591 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: connect
2026-01-02 15:44:47.469 meshcore_open[18957:6090980] [FBP-iOS] didConnectPeripheral
flutter: MTU request failed: FlutterBluePlusException | requestMtu | fbp-code: 2 | android-only, using default
2026-01-02 15:44:47.479 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: discoverServices
flutter: [FBP] stopScan: already stopped
2026-01-02 15:44:47.618 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverServices:
2026-01-02 15:44:47.618 meshcore_open[18957:6090980] [FBP-iOS]   svc: 6e400001-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.619 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverCharacteristicsForService:
2026-01-02 15:44:47.619 meshcore_open[18957:6090980] [FBP-iOS]   svc: 6e400001-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.619 meshcore_open[18957:6090980] [FBP-iOS]     chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.619 meshcore_open[18957:6090980] [FBP-iOS]     chr: 6e400002-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.679 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverIncludedServicesForService:
2026-01-02 15:44:47.679 meshcore_open[18957:6090980] [FBP-iOS]   svc: 6e400001-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.680 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverDescriptorsForCharacteristic:
2026-01-02 15:44:47.680 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.680 meshcore_open[18957:6090980] [FBP-iOS]     desc: 2902
2026-01-02 15:44:47.680 meshcore_open[18957:6090980] [FBP-iOS]     desc: 2901
2026-01-02 15:44:47.680 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverDescriptorsForCharacteristic:
2026-01-02 15:44:47.680 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400002-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.680 meshcore_open[18957:6090980] [FBP-iOS]     desc: 2901
2026-01-02 15:44:47.683 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverCharacteristicsForService:
2026-01-02 15:44:47.683 meshcore_open[18957:6090980] [FBP-iOS]   svc: 6e400001-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.683 meshcore_open[18957:6090980] [FBP-iOS]     chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.683 meshcore_open[18957:6090980] [FBP-iOS]     chr: 6e400002-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.687 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: connect
2026-01-02 15:44:47.687 meshcore_open[18957:6090980] [FBP-iOS] already connected
flutter: MTU request failed: FlutterBluePlusException | requestMtu | fbp-code: 2 | android-only, using default
2026-01-02 15:44:47.689 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: setNotifyValue
2026-01-02 15:44:47.689 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverDescriptorsForCharacteristic:
2026-01-02 15:44:47.689 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.689 meshcore_open[18957:6090980] [FBP-iOS]     desc: 2902
2026-01-02 15:44:47.689 meshcore_open[18957:6090980] [FBP-iOS]     desc: 2901
2026-01-02 15:44:47.689 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverDescriptorsForCharacteristic:
2026-01-02 15:44:47.689 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400002-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.689 meshcore_open[18957:6090980] [FBP-iOS]     desc: 2901
2026-01-02 15:44:47.740 meshcore_open[18957:6090980] [FBP-iOS] didUpdateNotificationStateForCharacteristic:
2026-01-02 15:44:47.740 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.744 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: discoverServices
2026-01-02 15:44:47.755 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverServices:
2026-01-02 15:44:47.755 meshcore_open[18957:6090980] [FBP-iOS]   svc: 6e400001-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.755 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverCharacteristicsForService:
2026-01-02 15:44:47.755 meshcore_open[18957:6090980] [FBP-iOS]   svc: 6e400001-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.755 meshcore_open[18957:6090980] [FBP-iOS]     chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.755 meshcore_open[18957:6090980] [FBP-iOS]     chr: 6e400002-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.797 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverIncludedServicesForService:
2026-01-02 15:44:47.797 meshcore_open[18957:6090980] [FBP-iOS]   svc: 6e400001-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.797 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverDescriptorsForCharacteristic:
2026-01-02 15:44:47.797 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.797 meshcore_open[18957:6090980] [FBP-iOS]     desc: 2902
2026-01-02 15:44:47.797 meshcore_open[18957:6090980] [FBP-iOS]     desc: 2901
2026-01-02 15:44:47.797 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverDescriptorsForCharacteristic:
2026-01-02 15:44:47.797 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400002-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.797 meshcore_open[18957:6090980] [FBP-iOS]     desc: 2901
2026-01-02 15:44:47.798 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverCharacteristicsForService:
2026-01-02 15:44:47.798 meshcore_open[18957:6090980] [FBP-iOS]   svc: 6e400001-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.798 meshcore_open[18957:6090980] [FBP-iOS]     chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.798 meshcore_open[18957:6090980] [FBP-iOS]     chr: 6e400002-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.799 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: writeCharacteristic
2026-01-02 15:44:47.799 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverDescriptorsForCharacteristic:
2026-01-02 15:44:47.799 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.800 meshcore_open[18957:6090980] [FBP-iOS]     desc: 2902
2026-01-02 15:44:47.800 meshcore_open[18957:6090980] [FBP-iOS]     desc: 2901
2026-01-02 15:44:47.800 meshcore_open[18957:6090980] [FBP-iOS] didDiscoverDescriptorsForCharacteristic:
2026-01-02 15:44:47.800 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400002-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.800 meshcore_open[18957:6090980] [FBP-iOS]     desc: 2901
2026-01-02 15:44:47.802 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: setNotifyValue
2026-01-02 15:44:47.860 meshcore_open[18957:6090980] [FBP-iOS] didUpdateNotificationStateForCharacteristic:
2026-01-02 15:44:47.860 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
2026-01-02 15:44:47.860 meshcore_open[18957:6090980] [FBP-iOS] didUpdateValueForCharacteristic:
2026-01-02 15:44:47.860 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
flutter: RX frame: code=13 len=80
flutter: [ChannelSync] Starting sync for 40 channels
flutter: [ChannelSync] Requesting channel 0/40 (retry: 0/3)
2026-01-02 15:44:47.864 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: writeCharacteristic
2026-01-02 15:44:47.865 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: writeCharacteristic
2026-01-02 15:44:47.866 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: writeCharacteristic
2026-01-02 15:44:47.867 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: writeCharacteristic
2026-01-02 15:44:47.868 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: writeCharacteristic
2026-01-02 15:44:47.921 meshcore_open[18957:6090980] [FBP-iOS] didUpdateValueForCharacteristic:
2026-01-02 15:44:47.921 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
flutter: RX frame: code=5 len=68
flutter: Got SELF_INFO
flutter: RX frame: code=5 len=68
flutter: Got SELF_INFO
2026-01-02 15:44:47.924 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: writeCharacteristic
2026-01-02 15:44:47.925 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: writeCharacteristic
2026-01-02 15:44:47.925 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: writeCharacteristic
2026-01-02 15:44:47.931 meshcore_open[18957:6090980] [FBP-iOS] handleMethodCall: writeCharacteristic
2026-01-02 15:44:47.989 meshcore_open[18957:6090980] [FBP-iOS] didUpdateValueForCharacteristic:
2026-01-02 15:44:47.989 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
flutter: RX frame: code=13 len=80
flutter: RX frame: code=13 len=80
2026-01-02 15:44:48.038 meshcore_open[18957:6090980] [FBP-iOS] didUpdateValueForCharacteristic:
2026-01-02 15:44:48.038 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
flutter: RX frame: code=2 len=5
flutter: Got CONTACTS_START
flutter: RX frame: code=2 len=5
flutter: Got CONTACTS_START
2026-01-02 15:44:48.101 meshcore_open[18957:6090980] [FBP-iOS] didUpdateValueForCharacteristic:
2026-01-02 15:44:48.101 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
flutter: RX frame: code=0 len=1
flutter: Unknown frame code: 0
flutter: RX frame: code=0 len=1
flutter: Unknown frame code: 0
2026-01-02 15:44:48.158 meshcore_open[18957:6090980] [FBP-iOS] didUpdateValueForCharacteristic:
2026-01-02 15:44:48.158 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
flutter: RX frame: code=0 len=1
flutter: Unknown frame code: 0
flutter: RX frame: code=0 len=1
flutter: Unknown frame code: 0
2026-01-02 15:44:48.220 meshcore_open[18957:6090980] [FBP-iOS] didUpdateValueForCharacteristic:
2026-01-02 15:44:48.220 meshcore_open[18957:6090980] [FBP-iOS]   chr: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
flutter: RX frame: code=3 len=148
flutter: Got CONTACT
flutter: RX frame: code=3 len=148
flutter: Got CONTACT
flutter: Error initializing notifications: Invalid argument(s): macOS settings must be set when targeting macOS platform.
flutter_local_notifications/FlutterLocalNotificationsPlugin.swift:538: Fatal error: Unexpectedly found nil while unwrapping an Optional value
Lost connection to device.

Metadata

Metadata

Assignees

Labels

BugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions