diff --git src/bp-messages/bp-messages-functions.php src/bp-messages/bp-messages-functions.php
index 07b45fb3b..56a1b2193 100644
--- src/bp-messages/bp-messages-functions.php
+++ src/bp-messages/bp-messages-functions.php
@@ -757,6 +757,7 @@ function bp_messages_dismiss_sitewide_notice( $user_id = 0, $notice_id = 0 ) {
 	if ( ! $user_id ) {
 		$user_id = bp_loggedin_user_id();
 	}
+
 	// Bail if no user is set.
 	if ( ! $user_id ) {
 		return $retval;
@@ -767,16 +768,14 @@ function bp_messages_dismiss_sitewide_notice( $user_id = 0, $notice_id = 0 ) {
 	} else {
 		$notice = BP_Messages_Notice::get_active();
 	}
+
 	// Bail if no notice is set.
 	if ( empty( $notice->id ) ) {
 		return $retval;
 	}
 
 	// Fetch the user's closed notices and add the new item.
-	$closed_notices = bp_get_user_meta( $user_id, 'closed_notices', true );
-	if ( empty( $closed_notices ) || ! is_array( $closed_notices ) ) {
-		$closed_notices = array();
-	}
+	$closed_notices = (array) bp_get_user_meta( $user_id, 'closed_notices', true );
 
 	if ( in_array( (int) $notice->id, $closed_notices, true ) ) {
 		// The notice has already been dismissed, so there's nothing to do.
@@ -786,6 +785,7 @@ function bp_messages_dismiss_sitewide_notice( $user_id = 0, $notice_id = 0 ) {
 		$closed_notices[] = (int) $notice->id;
 		$closed_notices   = array_map( 'absint', array_unique( $closed_notices ) );
 		$success          = bp_update_user_meta( $user_id, 'closed_notices', $closed_notices );
+
 		// The return value from update_user_meta() could be an integer or a boolean.
 		$retval = (bool) $success;
 	}
