obsproject / obsproject/obs-studio
Crash on boot for particular `basic/scenes/Untitled.json`
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 76.4k
- Forks
- 10.2k
- Avg merge
- 4d 23h
- Merged PRs (30d)
- 12
Description
Operating System Info
macOS 14
Other OS
No response
OBS Studio Version
30.1.2
OBS Studio Version (Other)
No response
OBS Studio Log URL
https://obsproject.com/logs/PoDNSobWHFldo2Nz
OBS Studio Crash Log URL
No crash logs generated
Expected Behavior
OBS not to crash on startup.
I don't think those OBS logs will be super useful -- I looked at all my logs and they don't seem to have anything related to the crash.
I also found making a more than few websocket requests back to back consistently creates bad Untitled.json files which cause my OBS to crash on startup.
Current Behavior
OBS crashes on startup with seemingly no relevant logs.
Steps to Reproduce
I got here from programmatically making a number of (valid) websocket requests, but I found I the source of. the crash to be in the Untitled.json that OBS created.
- Starting from a fresh install
- Open OBS so files in
~/Library/Application Support/obs-studio/are created - Replace
~/Library/Application Support/obs-studio/basic/scenes/Untitled.jsonwith the following contents:
{
"AuxAudioDevice1": {
"prev_ver": 503382018,
"name": "Mic/Aux",
"uuid": "44d819e4-36e9-42d8-adac-d94909f8dfec",
"id": "coreaudio_input_capture",
"versioned_id": "coreaudio_input_capture",
"settings": {
"device_id": "default"
},
"mixers": 255,
"sync": 0,
"flags": 0,
"volume": 1.0,
"balance": 0.5,
"enabled": true,
"muted": false,
"push-to-mute": false,
"push-to-mute-delay": 0,
"push-to-talk": false,
"push-to-talk-delay": 0,
"hotkeys": {
"libobs.mute": [],
"libobs.unmute": [],
"libobs.push-to-mute": [],
"libobs.push-to-talk": []
},
"deinterlace_mode": 0,
"deinterlace_field_order": 0,
"monitoring_type": 0,
"private_settings": {}
},
"current_scene": "",
"current_program_scene": "",
"scene_order": [],
"name": "Untitled",
"sources": [
{
"prev_ver": 503382018,
"name": "Countdown Timer • 0b391f21-41d9-4600-8f00-9d0287851f4c",
"uuid": "48c11126-c4e9-406d-88e5-829edda05999",
"id": "text_ft2_source",
"versioned_id": "text_ft2_source_v2",
"settings": {
"color": 4294967295,
"text": "4:08",
"font": {
"face": "Avenir",
"size": 120
},
"color1": 4278198255,
"color2": 4278190185
},
"mixers": 0,
"sync": 0,
"flags": 0,
"volume": 1.0,
"balance": 0.5,
"enabled": true,
"muted": false,
"push-to-mute": false,
"push-to-mute-delay": 0,
"push-to-talk": false,
"push-to-talk-delay": 0,
"hotkeys": {},
"deinterlace_mode": 0,
"deinterlace_field_order": 0,
"monitoring_type": 0,
"private_settings": {}
},
{
"prev_ver": 503382018,
"name": "Execution Text • 0b391f21-41d9-4600-8f00-9d0287851f4c",
"uuid": "9d260956-d599-4c97-8c2f-882552682978",
"id": "text_ft2_source",
"versioned_id": "text_ft2_source_v2",
"settings": {
"color": 4294967295,
"text": "Execution",
"font": {
"face": "Avenir",
"size": 120
},
"color1": 4278198255,
"color2": 4278190185
},
"mixers": 0,
"sync": 0,
"flags": 0,
"volume": 1.0,
"balance": 0.5,
"enabled": true,
"muted": false,
"push-to-mute": false,
"push-to-mute-delay": 0,
"push-to-talk": false,
"push-to-talk-delay": 0,
"hotkeys": {},
"deinterlace_mode": 0,
"deinterlace_field_order": 0,
"monitoring_type": 0,
"private_settings": {}
}
],
"groups": [],
"quick_transitions": [
{
"name": "Cut",
"duration": 300,
"hotkeys": [],
"id": 1,
"fade_to_black": false
},
{
"name": "Fade",
"duration": 300,
"hotkeys": [],
"id": 2,
"fade_to_black": false
},
{
"name": "Fade",
"duration": 300,
"hotkeys": [],
"id": 3,
"fade_to_black": true
}
],
"transitions": [],
"saved_projectors": [],
"current_transition": "Fade",
"transition_duration": 300,
"preview_locked": false,
"scaling_enabled": false,
"scaling_level": 0,
"scaling_off_x": 0.0,
"scaling_off_y": 0.0,
"virtual-camera": {
"type2": 3
},
"modules": {
"scripts-tool": [],
"output-timer": {
"streamTimerHours": 0,
"streamTimerMinutes": 0,
"streamTimerSeconds": 30,
"recordTimerHours": 0,
"recordTimerMinutes": 0,
"recordTimerSeconds": 30,
"autoStartStreamTimer": false,
"autoStartRecordTimer": false,
"pauseRecordTimer": true
},
"auto-scene-switcher": {
"interval": 300,
"non_matching_scene": "",
"switch_if_not_matching": false,
"active": false,
"switches": []
}
}
}
Anything else we should know?
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the startup crash by replacing ~/Library/Application Support/obs-studio/basic/scenes/Untitled.json with the supplied contents, then trace OBS's scene-file loading during startup. Use the supplied log and crash reproduction to identify why this scene causes the application to exit; done means OBS starts without crashing and handles the file safely.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100