diff --git a/app/watchdog_service.cpp b/app/watchdog_service.cpp
index d3fa3ad..cf386b8 100644
--- a/app/watchdog_service.cpp
+++ b/app/watchdog_service.cpp
@@ -25,12 +25,18 @@
 
 WatchdogService::Properties WatchdogService::getProperties()
 {
+    bool wasValid = wd_service.isValid(bus);
     auto request = wd_service.newMethodCall(bus, prop_intf, "GetAll");
     request.append(wd_intf);
     auto response = bus.call(request);
     if (response.is_method_error())
     {
         wd_service.invalidate();
+        if (wasValid)
+        {
+            // Retry the request once in case the cached service was stale
+            return getProperties();
+        }
         throw std::runtime_error("Failed to get watchdog properties");
     }
 
@@ -49,12 +55,18 @@
 template <typename T>
 void WatchdogService::setProperty(const std::string& key, const T& val)
 {
+    bool wasValid = wd_service.isValid(bus);
     auto request = wd_service.newMethodCall(bus, prop_intf, "Set");
     request.append(wd_intf, key, variant<T>(val));
     auto response = bus.call(request);
     if (response.is_method_error())
     {
         wd_service.invalidate();
+        if (wasValid)
+        {
+            // Retry the request once in case the cached service was stale
+            return setProperty(key, val);
+        }
         throw std::runtime_error(std::string("Failed to set property: ") + key);
     }
 }
