I tested with the older console app on a Catalina machine (I’ve updated with this machine before, and in general it’s less likely to see weird permissions issues on Catalina vs Big Sur). Observations:
A final clue - when I do the force reset (e.g. holding the update button), when my device comes online the old console app immediately crashes. This seems to indicate that SOMETHING is happening when I do a force update. The force update procedure does nothing with the new app.
(I can post the full crash log, but discourse is limiting my character count and there’s nothing interesting in it anyway - this looks like a coincidental QT related crash)
Crash log
Process: ElectraOneConsole [62397]
Path: /Applications/ElectraOneConsole.app/Contents/MacOS/ElectraOneConsole
Identifier: ???
Version: ??? (???)
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: ElectraOneConsole [62397]
User ID: 501
Date/Time: 2021-07-27 17:24:01.810 +0200
OS Version: Mac OS X 10.14.6 (18G103)
Report Version: 12
Bridge OS Version: 3.0 (14Y904)
Anonymous UUID: 6609A00E-9D46-81C9-3465-2FFB59DAC9DF
Sleep/Wake UUID: 694C021C-9753-4E7D-BB2F-9CBDD35654BF
Time Awake Since Boot: 2500000 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000110
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [62397]
VM Regions Near 0x110:
-->
__TEXT 000000010dff3000-000000010ec73000 [ 12.5M] r-x/rwx SM=COW /Applications/ElectraOneConsole.app/Contents/MacOS/ElectraOneConsole
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 0x000000010e540868 QTextCursorPrivate::QTextCursorPrivate(QTextCursorPrivate const&) + 88
1 0x000000010e5443a8 QTextCursor::movePosition(QTextCursor::MoveOperation, QTextCursor::MoveMode, int) + 72
2 0x000000010e2923d1 QWidgetTextControl::moveCursor(QTextCursor::MoveOperation, QTextCursor::MoveMode) + 65
3 0x000000010e033c78 UpdaterWindow::tryToEnableSerial(std::__1::shared_ptr<Board>) + 152
4 0x000000010e032b48 UpdaterWindow::changeCurrentBoard(Board*) + 856
5 0x000000010e03201b UpdaterWindow::currentChanged(int) + 75
6 0x000000010e0379a8 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<int>, void, void (UpdaterWindow::*)(int)>::call(void (UpdaterWindow::*)(int), UpdaterWindow*, void**) + 136
7 0x000000010e0378f3 void QtPrivate::FunctionPointer<void (UpdaterWindow::*)(int)>::call<QtPrivate::List<int>, void>(void (UpdaterWindow::*)(int), UpdaterWindow*, void**) + 99
8 0x000000010e037806 QtPrivate::QSlotObject<void (UpdaterWindow::*)(int), QtPrivate::List<int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) + 166
9 0x000000010e8a8bf9 QMetaObject::activate(QObject*, int, int, void**) + 1417
10 0x000000010e1bda0d QComboBoxPrivate::_q_emitCurrentIndexChanged(QModelIndex const&) + 189
11 0x000000010e1c234f QComboBoxPrivate::setCurrentIndex(QModelIndex const&) + 607
12 0x000000010e1c1268 QComboBoxPrivate::_q_rowsInserted(QModelIndex const&, int, int) + 376
13 0x000000010e8a8f6a QMetaObject::activate(QObject*, int, int, void**) + 2298
14 0x000000010e8445e8 QAbstractItemModel::endInsertRows() + 296
15 0x000000010e8a8f6a QMetaObject::activate(QObject*, int, int, void**) + 2298
16 0x000000010e8445e8 QAbstractItemModel::endInsertRows() + 296
17 0x000000010e01d797 Monitor::handleAddedEvent(ty_board*) + 1223
18 0x000000010e01b021 Monitor::handleEvent(ty_board*, ty_monitor_event, void*) + 81
19 0x000000010e04f214 change_board_status + 340
20 0x000000010e04e8cd add_interface_for_device + 157
21 0x000000010e04dc06 device_callback + 86
22 0x000000010e03d71e _hs_monitor_add + 174
23 0x000000010e042b78 attached_callback + 104
24 0x000000010e040f8c process_iterator_devices + 156
25 0x000000010e0417a1 darwin_devices_attached + 49
26 com.apple.framework.IOKit 0x00007fff5103d6ec IODispatchCalloutFromCFMessage + 181
27 0x000000010e041c01 hs_monitor_refresh + 545
28 0x000000010e04e247 ty_monitor_refresh + 375
29 0x000000010e01babc Monitor::refresh(int) + 28
30 0x000000010e0201a8 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<int>, void, void (Monitor::*)(int)>::call(void (Monitor::*)(int), Monitor*, void**) + 136
31 0x000000010e0200f3 void QtPrivate::FunctionPointer<void (Monitor::*)(int)>::call<QtPrivate::List<int>, void>(void (Monitor::*)(int), Monitor*, void**) + 99
32 0x000000010e020006 QtPrivate::QSlotObject<void (Monitor::*)(int), QtPrivate::List<int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) + 166
33 0x000000010e8a8bf9 QMetaObject::activate(QObject*, int, int, void**) + 1417
34 0x000000010e039ce6 DescriptorNotifier::activated(int) + 70
35 0x000000010e0106c8 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<int>, void, void (DescriptorNotifier::*)(int)>::call(void (DescriptorNotifier::*)(int), DescriptorNotifier*, void**) + 136
36 0x000000010e010613 void QtPrivate::FunctionPointer<void (DescriptorNotifier::*)(int)>::call<QtPrivate::List<int>, void>(void (DescriptorNotifier::*)(int), DescriptorNotifier*, void**) + 99
37 0x000000010e010526 QtPrivate::QSlotObject<void (DescriptorNotifier::*)(int), QtPrivate::List<int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) + 166
38 0x000000010e8a8bf9 QMetaObject::activate(QObject*, int, int, void**) + 1417
39 0x000000010e8ae76f QSocketNotifier::event(QEvent*) + 671
40 0x000000010e0c413f QApplicationPrivate::notify_helper(QObject*, QEvent*) + 271
41 0x000000010e0c5426 QApplication::notify(QObject*, QEvent*) + 390
42 0x000000010e882914 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 212
43 0x000000010e8c1b6b qt_mac_socket_callback(__CFSocket*, unsigned long, __CFData const*, void const*, void*) + 171
44 com.apple.CoreFoundation 0x00007fff4e7ebb36 __CFSocketPerformV0 + 976
45 com.apple.CoreFoundation 0x00007fff4e752de3 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
46 com.apple.CoreFoundation 0x00007fff4e752d89 __CFRunLoopDoSource0 + 108
47 com.apple.CoreFoundation 0x00007fff4e73674b __CFRunLoopDoSources0 + 195
48 com.apple.CoreFoundation 0x00007fff4e735d15 __CFRunLoopRun + 1189
49 com.apple.CoreFoundation 0x00007fff4e73561e CFRunLoopRunSpecific + 455
50 com.apple.HIToolbox 0x00007fff4d9941ab RunCurrentEventLoopInMode + 292
51 com.apple.HIToolbox 0x00007fff4d993ee5 ReceiveNextEventCommon + 603
52 com.apple.HIToolbox 0x00007fff4d993c76 _BlockUntilNextEventMatchingListInModeWithFilter + 64
53 com.apple.AppKit 0x00007fff4bd2c77d _DPSNextEvent + 1135
54 com.apple.AppKit 0x00007fff4bd2b46b -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1361
55 com.apple.AppKit 0x00007fff4bd25588 -[NSApplication run] + 699
56 0x000000010e0719b6 QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 2998
57 0x000000010e87e0bf QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 431
58 0x000000010e883071 QCoreApplication::exec() + 369
59 0x000000010e02b417 TyUpdater::run() + 583
60 0x000000010e02b1a1 TyUpdater::exec() + 17
61 0x000000010e02b63b main + 155
62 libdyld.dylib 0x00007fff7a6b73d5 start + 1
Model: MacBookPro13,2, BootROM 259.71.1.0.0, 2 processors, Intel Core i7, 3.3 GHz, 16 GB, SMC 2.37f20
Graphics: kHW_IntelIrisGraphics550Item, Intel Iris Graphics 550, spdisplays_builtin
Memory Module: BANK 0/DIMM0, 8 GB, LPDDR3, 2133 MHz, 0x802C, 0x4D5435324C31473332443450472D30393320
Memory Module: BANK 1/DIMM0, 8 GB, LPDDR3, 2133 MHz, 0x802C, 0x4D5435324C31473332443450472D30393320
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x157), Broadcom BCM43xx 1.0 (7.77.61.2 AirPortDriverBrcmNIC-1305.8)
Bluetooth: Version 6.0.14d3, 3 services, 18 devices, 1 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
USB Device: USB 3.0 Bus
USB Device: Electra Controller
USB Device: Traktor Kontrol S8
USB Device: My Passport 25E2
USB Device: Apple T1 Controller
Thunderbolt Bus: MacBook Pro, Apple Inc., 41.1
Thunderbolt Bus: MacBook Pro, Apple Inc., 41.1