diff --git a/components/common/cpp/src/configuration.cpp b/components/common/cpp/src/configuration.cpp
index 8c6173b08a828e783fa59856be60cb964d87d868..31f28c309caeb1c8b161db4229b942af0c8b0fb6 100644
--- a/components/common/cpp/src/configuration.cpp
+++ b/components/common/cpp/src/configuration.cpp
@@ -225,6 +225,15 @@ bool ftl::config::update(const std::string &puri, const json_t &value) {
 			return false;
 		}
 
+		// If there is an ID it still may be a configurable so check!
+		if (r["$id"].is_string()) {
+			Configurable *cfg = find(r["$id"].get<string>());
+			if (cfg) {
+				cfg->set<json_t>(tail, value);
+				return true;
+			}
+		}
+
 		r[tail] = value;
 		return true;
 	}