diff --git a/wpa_supplicant/aidl/vendor/aidl_manager.cpp b/wpa_supplicant/aidl/vendor/aidl_manager.cpp
index 89a4251..52ac6ab 100644
--- a/wpa_supplicant/aidl/vendor/aidl_manager.cpp
+++ b/wpa_supplicant/aidl/vendor/aidl_manager.cpp
@@ -2996,24 +2996,26 @@
 			&ISupplicantStaIfaceCallback::onUsdSubscribeStarted,
 			std::placeholders::_1, cmd_id, subscribe_id));
 }
-void AidlManager::notifyUsdPublishConfigFailed(struct wpa_supplicant *wpa_s, int cmd_id)
+void AidlManager::notifyUsdPublishConfigFailed(struct wpa_supplicant *wpa_s,
+	int cmd_id, ISupplicantStaIfaceCallback::UsdConfigErrorCode error_code)
 {
 	if (!wpa_s) return;
 	if (!areAidlServiceAndClientAtLeastVersion(4)) return;
 	callWithEachStaIfaceCallback(
 		misc_utils::charBufToString(wpa_s->ifname), std::bind(
 			&ISupplicantStaIfaceCallback::onUsdPublishConfigFailed,
-			std::placeholders::_1, cmd_id));
+			std::placeholders::_1, cmd_id, error_code));
 }
 
-void AidlManager::notifyUsdSubscribeConfigFailed(struct wpa_supplicant *wpa_s, int cmd_id)
+void AidlManager::notifyUsdSubscribeConfigFailed(struct wpa_supplicant *wpa_s,
+	int cmd_id, ISupplicantStaIfaceCallback::UsdConfigErrorCode error_code)
 {
 	if (!wpa_s) return;
 	if (!areAidlServiceAndClientAtLeastVersion(4)) return;
 	callWithEachStaIfaceCallback(
 		misc_utils::charBufToString(wpa_s->ifname), std::bind(
 			&ISupplicantStaIfaceCallback::onUsdSubscribeConfigFailed,
-			std::placeholders::_1, cmd_id));
+			std::placeholders::_1, cmd_id, error_code));
 }
 
 UsdServiceProtoType convertUsdServiceProtoTypeToAidl(nan_service_protocol_type type) {
diff --git a/wpa_supplicant/aidl/vendor/aidl_manager.h b/wpa_supplicant/aidl/vendor/aidl_manager.h
index d40837c..b217749 100644
--- a/wpa_supplicant/aidl/vendor/aidl_manager.h
+++ b/wpa_supplicant/aidl/vendor/aidl_manager.h
@@ -182,8 +182,10 @@
 			int cmd_id, int publish_id);
 	void notifyUsdSubscribeStarted(struct wpa_supplicant *wpa_s,
 			int cmd_id, int subscribe_id);
-	void notifyUsdPublishConfigFailed(struct wpa_supplicant *wpa_s, int cmd_id);
-	void notifyUsdSubscribeConfigFailed(struct wpa_supplicant *wpa_s, int cmd_id);
+	void notifyUsdPublishConfigFailed(struct wpa_supplicant *wpa_s,
+			int cmd_id, ISupplicantStaIfaceCallback::UsdConfigErrorCode error_code);
+	void notifyUsdSubscribeConfigFailed(struct wpa_supplicant *wpa_s,
+			int cmd_id, ISupplicantStaIfaceCallback::UsdConfigErrorCode error_code);
 	void notifyUsdServiceDiscovered(struct wpa_supplicant *wpa_s,
 			enum nan_service_protocol_type srv_proto_type,
 			int subscribe_id, int peer_publish_id, const u8 *peer_addr,
diff --git a/wpa_supplicant/aidl/vendor/sta_iface.cpp b/wpa_supplicant/aidl/vendor/sta_iface.cpp
index aebd92a..b78eed6 100644
--- a/wpa_supplicant/aidl/vendor/sta_iface.cpp
+++ b/wpa_supplicant/aidl/vendor/sta_iface.cpp
@@ -2795,7 +2795,8 @@
 	WPA_ASSERT(aidl_manager);
 	if (publishId < 0) {
 		wpa_printf(MSG_INFO, "Failed to configure USD publish");
-		aidl_manager->notifyUsdPublishConfigFailed(wpa_s, cmdId);
+		aidl_manager->notifyUsdPublishConfigFailed(
+			wpa_s, cmdId, UsdConfigErrorCode::FAILURE_UNKNOWN);
 		return createStatus(SupplicantStatusCode::FAILURE_UNKNOWN);
 	}
 	aidl_manager->notifyUsdPublishStarted(wpa_s, cmdId, publishId);
@@ -2829,7 +2830,8 @@
 	WPA_ASSERT(aidl_manager);
 	if (subscribeId < 0) {
 		wpa_printf(MSG_INFO, "Failed to configure USD subscribe");
-		aidl_manager->notifyUsdSubscribeConfigFailed(wpa_s, cmdId);
+		aidl_manager->notifyUsdSubscribeConfigFailed(
+			wpa_s, cmdId, UsdConfigErrorCode::FAILURE_UNKNOWN);
 		return createStatus(SupplicantStatusCode::FAILURE_UNKNOWN);
 	}
 	aidl_manager->notifyUsdSubscribeStarted(wpa_s, cmdId, subscribeId);
