obs-browser crash when connecting to Twitch account
Closed this issue · 16 comments
Operating System Info
macOS 15
Other OS
No response
OBS Studio Version
Other
OBS Studio Version (Other)
32.0.0-beta2
OBS Studio Log URL
https://obsproject.com/logs/mlOMNBFOKaFpiQHL
OBS Studio Crash Log URL
No response
Expected Behavior
Twitch account remains connected/may be connected, adding docks and additional features.
Current Behavior
Twitch account is unable to authenticate and crashes upon attempting to sign in.
Steps to Reproduce
- Open OBS 32.0.0 beta 2
- Try to connect Twitch account in settings
- Enter username and password (2fa may be asked at first but now is not even reaching that far).
- OBS should crash
Anything else we should know?
I am using a Mac which may not be helping, and do also have a couple of plugins that do not load as a result of the adjusted parameters in this version. I do not believe this to seem likely to be unique to macOS but it is something to investigate if unnoticed in other operating systems.
Please provide the application crash log.
Here you go, sorry! https://obsproject.com/logs/nL9P4B7KHRbHfmU7
I think the conclusion on this was that this is an old/known crash that we have so far been unable to reproduce on dev machines. So we're aware that there is a rare crash condition here somewhere dating back several releases, but not sure exactly what causes it.
I was able to connect my account back to OBS by rolling back to OBS 31.1.2 so it seems that this is an issue that at least isn't present on macOS for that release.
Just to make this more easily searchable, your crash stack is:
Thread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread
0 obs-browser 0x13627ef40 QCefWidgetInternal::closeBrowser() (in obs-browser) (browser-panel.cpp:214) + 421696
1 obs-browser 0x13627ec04 QCefWidgetInternal::~QCefWidgetInternal() (in obs-browser) (browser-panel.cpp:157) + 420868
2 obs-browser 0x13627ecb4 QCefWidgetInternal::~QCefWidgetInternal() (in obs-browser) (browser-panel.cpp:155) + 421044
3 OBS 0x1046611ac OAuthLogin::accept() (in OBS) (OAuthLogin.cpp:0) + 430508
4 OBS 0x1046609d4 OAuthLogin::urlChanged(QString const&) (in OBS) (OAuthLogin.cpp:106) + 428500
5 QtCore 0x106d4fb38 0x106c70000 + 916280
6 obs-browser 0x136258798 QCefWidget::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (in obs-browser) (moc_browser-panel.cpp:100) + 264088
7 QtCore 0x106d0ce18 QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) + 1072
8 QtCore 0x106d10434 QMetaObject::invokeMethodImpl(QObject*, char const*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) + 304
9 obs-browser 0x13627a5f4 QCefBrowserClient::OnBeforeBrowse(scoped_refptr<CefBrowser>, scoped_refptr<CefFrame>, scoped_refptr<CefRequest>, bool, bool) (in obs-browser) (browser-panel-client.cpp:124) + 402932
10 obs-browser 0x13622f6c4 (anonymous namespace)::request_handler_on_before_browse(_cef_request_handler_t*, _cef_browser_t*, _cef_frame_t*, _cef_request_t*, int, int) (in obs-browser) + 400 + 95940
11 Chromium Embedded Framework 0x3002b4788 cef_create_context_shared + 8804
The full stack is:
Full Crash
Thread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread
0 obs-browser 0x13627ef40 0x136218000 + 421696
1 obs-browser 0x13627ec04 0x136218000 + 420868
2 obs-browser 0x13627ecb4 0x136218000 + 421044
3 OBS 0x1046611ac 0x1045f8000 + 430508
4 OBS 0x1046609d4 0x1045f8000 + 428500
5 QtCore 0x106d4fb38 0x106c70000 + 916280
6 obs-browser 0x136258798 0x136218000 + 264088
7 QtCore 0x106d0ce18 QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) + 1072
8 QtCore 0x106d10434 QMetaObject::invokeMethodImpl(QObject*, char const*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) + 304
9 obs-browser 0x13627a5f4 0x136218000 + 402932
10 obs-browser 0x13622f6c4 0x136218000 + 95940
11 Chromium Embedded Framework 0x3002b4788 cef_create_context_shared + 8804
12 Chromium Embedded Framework 0x300339aec _$LT$read_fonts..tables..bitmap..BitmapFlags$u20$as$u20$font_types..raw..Scalar$GT$::to_raw::hb6a55d0a4992f500 + 246720
13 Chromium Embedded Framework 0x30867528c _$LT$skrifa..instance..Location$u20$as$u20$core..default..Default$GT$::default::h192a13b67c4d7fc0 + 28127688
14 Chromium Embedded Framework 0x3028426cc _$LT$font_types..tag..Tag$u20$as$u20$core..cmp..PartialEq$LT$$u5b$u8$u3b$$u20$4$u5d$$GT$$GT$::eq::hfd53458b4c0a93ed + 7043348
15 Chromium Embedded Framework 0x3028286e4 _$LT$font_types..tag..Tag$u20$as$u20$core..cmp..PartialEq$LT$$u5b$u8$u3b$$u20$4$u5d$$GT$$GT$::eq::hfd53458b4c0a93ed + 6936876
16 Chromium Embedded Framework 0x302826e08 _$LT$font_types..tag..Tag$u20$as$u20$core..cmp..PartialEq$LT$$u5b$u8$u3b$$u20$4$u5d$$GT$$GT$::eq::hfd53458b4c0a93ed + 6930512
17 Chromium Embedded Framework 0x302825f74 _$LT$font_types..tag..Tag$u20$as$u20$core..cmp..PartialEq$LT$$u5b$u8$u3b$$u20$4$u5d$$GT$$GT$::eq::hfd53458b4c0a93ed + 6926780
18 Chromium Embedded Framework 0x3028483ac _$LT$font_types..tag..Tag$u20$as$u20$core..cmp..PartialEq$LT$$u5b$u8$u3b$$u20$4$u5d$$GT$$GT$::eq::hfd53458b4c0a93ed + 7067124
19 Chromium Embedded Framework 0x30286b6c4 _$LT$font_types..tag..Tag$u20$as$u20$core..cmp..PartialEq$LT$$u5b$u8$u3b$$u20$4$u5d$$GT$$GT$::eq::hfd53458b4c0a93ed + 7211276
20 Chromium Embedded Framework 0x3021f5720 _$LT$font_types..tag..Tag$u20$as$u20$core..cmp..PartialEq$LT$$u5b$u8$u3b$$u20$4$u5d$$GT$$GT$::eq::hfd53458b4c0a93ed + 436584
21 Chromium Embedded Framework 0x303ffc228 _$LT$bool$u20$as$u20$cxx..shared_ptr..SharedPtrTarget$GT$::__get::hc9d6e495a3c6cb88 + 774060
22 Chromium Embedded Framework 0x304001160 _$LT$bool$u20$as$u20$cxx..shared_ptr..SharedPtrTarget$GT$::__get::hc9d6e495a3c6cb88 + 794340
23 Chromium Embedded Framework 0x303ffd914 _$LT$bool$u20$as$u20$cxx..shared_ptr..SharedPtrTarget$GT$::__get::hc9d6e495a3c6cb88 + 779928
24 Chromium Embedded Framework 0x3042f73ac fontations_ffi$cxxbridge1$BridgeHintingInstance$operator$sizeof + 2990112
25 Chromium Embedded Framework 0x3042f7740 fontations_ffi$cxxbridge1$BridgeHintingInstance$operator$sizeof + 2991028
26 Chromium Embedded Framework 0x303e9a220 fontations_ffi$cxxbridge1$BridgeBitmapGlyph$operator$sizeof + 636252
27 Chromium Embedded Framework 0x303eb7858 fontations_ffi$cxxbridge1$BridgeBitmapGlyph$operator$sizeof + 756628
28 Chromium Embedded Framework 0x3002f37ec cef_zip_reader_create + 125908
29 Chromium Embedded Framework 0x303eb8008 fontations_ffi$cxxbridge1$BridgeBitmapGlyph$operator$sizeof + 758596
30 Chromium Embedded Framework 0x303e7fa08 fontations_ffi$cxxbridge1$BridgeBitmapGlyph$operator$sizeof + 527684
31 Chromium Embedded Framework 0x303e80268 fontations_ffi$cxxbridge1$BridgeBitmapGlyph$operator$sizeof + 529828
32 Chromium Embedded Framework 0x30030cee8 _$LT$read_fonts..tables..bitmap..BitmapFlags$u20$as$u20$font_types..raw..Scalar$GT$::to_raw::hb6a55d0a4992f500 + 63420
33 QtCore 0x106d47e30 QObject::event(QEvent*) + 664
34 QtWidgets 0x109b7a828 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 336
35 QtWidgets 0x109b7b7f0 QApplication::notify(QObject*, QEvent*) + 508
36 QtCore 0x106d011f0 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 200
37 QtCore 0x106d02318 QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 528
38 libqcocoa.dylib 0x10d717a6c 0x10d700000 + 96876
39 libqcocoa.dylib 0x10d718cc4 0x10d700000 + 101572
40 CoreFoundation 0x18c9feb14 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
41 CoreFoundation 0x18c9feaa8 __CFRunLoopDoSource0 + 172
42 CoreFoundation 0x18c9fe814 __CFRunLoopDoSources0 + 232
43 CoreFoundation 0x18c9fd468 __CFRunLoopRun + 840
44 CoreFoundation 0x18c9fca98 CFRunLoopRunSpecific + 572
45 HIToolbox 0x19849f27c RunCurrentEventLoopInMode + 324
46 HIToolbox 0x1984a24e8 ReceiveNextEventCommon + 676
47 HIToolbox 0x19862d484 _BlockUntilNextEventMatchingListInModeWithFilter + 76
48 AppKit 0x190921a34 _DPSNextEvent + 684
49 AppKit 0x1912c0940 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 688
50 libqcocoa.dylib 0x10d71653c 0x10d700000 + 91452
51 QtCore 0x106d0acb0 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 596
52 QtWidgets 0x109d987d0 QDialog::exec() + 500
53 OBS 0x1046eeeac 0x1045f8000 + 1011372
54 OBS 0x1046e5918 0x1045f8000 + 973080
55 OBS 0x1047726a8 0x1045f8000 + 1549992
56 OBS 0x104713544 0x1045f8000 + 1160516
57 QtCore 0x106d4fadc 0x106c70000 + 916188
58 QtWidgets 0x109c73a78 0x109b6c000 + 1079928
59 QtWidgets 0x109c738b0 0x109b6c000 + 1079472
60 QtWidgets 0x109c74868 QAbstractButton::mouseReleaseEvent(QMouseEvent*) + 188
61 QtWidgets 0x109bc5c38 QWidget::event(QEvent*) + 128
62 QtWidgets 0x109b7a828 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 336
63 QtWidgets 0x109b7c968 QApplication::notify(QObject*, QEvent*) + 4980
64 QtCore 0x106d011f0 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 200
65 QtWidgets 0x109b7ae80 QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) + 892
66 QtWidgets 0x109bdb06c 0x109b6c000 + 454764
67 QtWidgets 0x109bda33c 0x109b6c000 + 451388
68 QtWidgets 0x109b7a828 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 336
69 QtWidgets 0x109b7b7f0 QApplication::notify(QObject*, QEvent*) + 508
70 QtCore 0x106d011f0 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 200
71 QtGui 0x1061986a8 QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 1880
72 QtGui 0x1061f5b5c QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 408
73 libqcocoa.dylib 0x10d718cc4 0x10d700000 + 101572
74 CoreFoundation 0x18c9feb14 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
75 CoreFoundation 0x18c9feaa8 __CFRunLoopDoSource0 + 172
76 CoreFoundation 0x18c9fe814 __CFRunLoopDoSources0 + 232
77 CoreFoundation 0x18c9fd468 __CFRunLoopRun + 840
78 CoreFoundation 0x18c9fca98 CFRunLoopRunSpecific + 572
79 HIToolbox 0x19849f27c RunCurrentEventLoopInMode + 324
80 HIToolbox 0x1984a231c ReceiveNextEventCommon + 216
81 HIToolbox 0x19862d484 _BlockUntilNextEventMatchingListInModeWithFilter + 76
82 AppKit 0x190921a34 _DPSNextEvent + 684
83 AppKit 0x1912c0940 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 688
84 AppKit 0x190b4dbdc -[NSApplication _doModalLoop:peek:] + 216
85 AppKit 0x190ebf1a8 __33-[NSApplication runModalSession:]_block_invoke_2 + 84
86 AppKit 0x190ebf138 __33-[NSApplication runModalSession:]_block_invoke + 112
87 AppKit 0x190b4bff4 _NSTryRunModal + 100
88 AppKit 0x190ebf008 -[NSApplication runModalSession:] + 148
89 libqcocoa.dylib 0x10d7164f8 0x10d700000 + 91384
90 QtCore 0x106d0acb0 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 596
91 QtWidgets 0x109d987d0 QDialog::exec() + 500
92 OBS 0x104812410 0x1045f8000 + 2204688
93 OBS 0x1047d382c 0x1045f8000 + 1947692
94 QtCore 0x106d4fadc 0x106c70000 + 916188
95 QtGui 0x1064b9890 QAction::activate(QAction::ActionEvent) + 368
96 QtCore 0x106d47e30 QObject::event(QEvent*) + 664
97 QtWidgets 0x109b7a828 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 336
98 QtWidgets 0x109b7b7f0 QApplication::notify(QObject*, QEvent*) + 508
99 QtCore 0x106d011f0 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 200
100 QtCore 0x106d02318 QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 528
101 libqcocoa.dylib 0x10d717a6c 0x10d700000 + 96876
102 libqcocoa.dylib 0x10d718cc4 0x10d700000 + 101572
103 CoreFoundation 0x18c9feb14 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
104 CoreFoundation 0x18c9feaa8 __CFRunLoopDoSource0 + 172
105 CoreFoundation 0x18c9fe878 __CFRunLoopDoSources0 + 332
106 CoreFoundation 0x18c9fd468 __CFRunLoopRun + 840
107 CoreFoundation 0x18c9fca98 CFRunLoopRunSpecific + 572
108 HIToolbox 0x19849f27c RunCurrentEventLoopInMode + 324
109 HIToolbox 0x1984a231c ReceiveNextEventCommon + 216
110 HIToolbox 0x19862d484 _BlockUntilNextEventMatchingListInModeWithFilter + 76
111 AppKit 0x190921a34 _DPSNextEvent + 684
112 AppKit 0x1912c0940 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 688
113 AppKit 0x190914be4 -[NSApplication run] + 480
114 libqcocoa.dylib 0x10d71659c 0x10d700000 + 91548
115 QtCore 0x106d0acb0 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 596
116 QtCore 0x106d01a18 QCoreApplication::exec() + 216
117 OBS 0x1046f38f4 0x1045f8000 + 1030388
118 dyld 0x18c572b98 start + 6076
For comparison, here is a crash I encountered on 32.0.0-rc1:
Thread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread
0 QtCore 0x10330298c QTimer::~QTimer() + 36
1 obs-browser 0x129662c0c QCefWidgetInternal::~QCefWidgetInternal() (in obs-browser) (browser-panel.cpp:157) + 420876
2 obs-browser 0x129662cb4 QCefWidgetInternal::~QCefWidgetInternal() (in obs-browser) (browser-panel.cpp:155) + 421044
3 OBS 0x100a6d17c OAuthLogin::accept() (in OBS) (OAuthLogin.cpp:0) + 430460
4 OBS 0x100a6c9a4 OAuthLogin::urlChanged(QString const&) (in OBS) (OAuthLogin.cpp:106) + 428452
5 QtCore 0x1032efb38 0x103210000 + 916280
6 obs-browser 0x12963c798 QCefWidget::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (in obs-browser) (moc_browser-panel.cpp:100) + 264088
7 QtCore 0x1032ace18 QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) + 1072
8 QtCore 0x1032b0434 QMetaObject::invokeMethodImpl(QObject*, char const*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) + 304
9 obs-browser 0x12965e5f4 QCefBrowserClient::OnBeforeBrowse(scoped_refptr<CefBrowser>, scoped_refptr<CefFrame>, scoped_refptr<CefRequest>, bool, bool) (in obs-browser) (browser-panel-client.cpp:124) + 402932
10 obs-browser 0x1296136c4 (anonymous namespace)::request_handler_on_before_browse(_cef_request_handler_t*, _cef_browser_t*, _cef_frame_t*, _cef_request_t*, int, int) (in obs-browser) + 400 + 95940
11 Chromium Embedded Framework 0x16fe58788 cef_create_context_shared + 8804
Items 1-11 in the stacks are the same. Item 0 differs, but I'm not sure that's relevant. I expect this is the same crash. However, I'm pretty sure at the moment that this is a race condition crash that can also occur in older versions of OBS when browser panels/docks are being closed/destroyed. We'll keep investigating.
Have the same issue with the release version of 32 on Mac OS Tahoe 26.0
I’m also reporting that this issue persists in version 32.0.1 on macOS 26. Could you fix it as soon as possible? It’s quite a critical problem.
@RytoEX Hi, is there any urgent hotfix planned? This issue has been reported by several streamers on Discord every day for at least the past two weeks on MacOS, and if they are using platforms like SE.Live or similar, there is absolutely no way to bypass it manually.
We are still investigating, and do not have a conclusion for why this is happening, so there is no fix to push out.
@Fenrirthviti In my log, I can clearly see an issue: EXC_BAD_ACCESS (SIGSEGV). The crash is caused by the obs-browser module. It occurs in the QTimer destructor (a component from the Qt library responsible for timer management). The crash involves access to memory at address 0x78, which is invalid a typical sign of a use-after-free error (accessing memory after it has been freed). The crash happens in the CrBrowserMain thread within the obs-browser module. Hopefully, this information will be useful to you.
Please test with PR #12716 and obsproject/obs-browser#506 applied if you are able, as we think that should fix the problem.
@Fenrirthviti The version from PR12716 shows me without the option to connect an account. I only see the option to add a key.

Hello, any update on this thread ?
Okay, i've seen the PR, it's fixed but we just need to wait the new release, right ?
Correct, we're reasonably confident we have a fix for this which will be in the next release.