diff --git a/.travis.yml b/.travis.yml
index 057eed98452a17e121da0743fe5c45ad6b00a288..7aad59509af93054152e8f117c19d67cd1d6375d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -130,4 +130,4 @@ notifications:
       - secure: "QKw73Zel/s3JAbe/7XyO9tPnJwiiGFpYzSjdR8lG3tYFjRdXZnhxG4c+G7bkgkaPTS4Hult33VXE3kcEqOI7+C+eRwRlZhDfL0knQbXVCxjcLjzmUFdoPOwurlgZDw66PFWCi5tZcLKSRo3u4U8ibT4WKi3jm9sDSyOcfBAucMU="
     on_pull_requests: false
     on_success: never  # options: [always|never|change] default: always
-    on_failure: change  # options: [always|never|change] default: always
+    on_failure: never  # options: [always|never|change] default: always
diff --git a/src/modules/mavlink/mavlink_orb_subscription.cpp b/src/modules/mavlink/mavlink_orb_subscription.cpp
index f1747e3a7972855a1dfe2a0a045d332e14e016b8..5255b16ee9f39b0b89a0dd5a0889a632b1fc5748 100644
--- a/src/modules/mavlink/mavlink_orb_subscription.cpp
+++ b/src/modules/mavlink/mavlink_orb_subscription.cpp
@@ -157,6 +157,15 @@ MavlinkOrbSubscription::is_published()
 		return true;
 	}
 
+	// This is a workaround for this issue:
+	// https://github.com/PX4/Firmware/issues/5438
+#if defined(__PX4_LINUX) || defined(__PX4_QURT)
+
+	if (_fd < 0) {
+		_fd = orb_subscribe_multi(_topic, _instance);
+	}
+
+#else
 	// Telemetry can sustain an initial published check at 10 Hz
 	hrt_abstime now = hrt_absolute_time();
 
@@ -175,6 +184,8 @@ MavlinkOrbSubscription::is_published()
 		_fd = orb_subscribe_multi(_topic, _instance);
 	}
 
+#endif
+
 	bool updated;
 	orb_check(_fd, &updated);