diff --git a/NEWS b/NEWS
index b698d4f5f..e23b1d0e5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,6 @@
 ver 0.21.26 (not yet released)
 * output
+  - osx: fix crash bug
   - sles: support floating point samples
 
 ver 0.21.25 (2020/07/06)
diff --git a/src/output/plugins/OSXOutputPlugin.cxx b/src/output/plugins/OSXOutputPlugin.cxx
index 0a51af7a5..f4a843119 100644
--- a/src/output/plugins/OSXOutputPlugin.cxx
+++ b/src/output/plugins/OSXOutputPlugin.cxx
@@ -477,7 +477,7 @@ osx_output_set_buffer_size(AudioUnit au, AudioStreamBasicDescription desc)
 }
 
 static void
-osx_output_hog_device(AudioDeviceID dev_id, bool hog)
+osx_output_hog_device(AudioDeviceID dev_id, bool hog) noexcept
 {
 	static constexpr AudioObjectPropertyAddress aopa = {
 		kAudioDevicePropertyHogMode,
@@ -485,8 +485,16 @@ osx_output_hog_device(AudioDeviceID dev_id, bool hog)
 		kAudioObjectPropertyElementMaster
 	};
 
-	pid_t hog_pid = AudioObjectGetPropertyDataT<pid_t>(dev_id,
-							   aopa);
+	pid_t hog_pid;
+
+	try {
+		hog_pid = AudioObjectGetPropertyDataT<pid_t>(dev_id, aopa);
+	} catch (...) {
+		Log(LogLevel::DEBUG, std::current_exception(),
+		    "Failed to query HogMode");
+		return;
+	}
+
 	if (hog) {
 		if (hog_pid != -1) {
 			FormatDebug(osx_output_domain,