diff --git src/bp-groups/bp-groups-functions.php src/bp-groups/bp-groups-functions.php
index 949e1a7..6dfab8c 100644
--- src/bp-groups/bp-groups-functions.php
+++ src/bp-groups/bp-groups-functions.php
@@ -2295,10 +2295,19 @@ function bp_groups_get_group_type( $group_id, $single = true ) {
 	$types = wp_cache_get( $group_id, 'bp_groups_group_type' );
 
 	if ( false === $types ) {
-		$types = bp_get_object_terms( $group_id, 'bp_group_type' );
+		$raw_types = bp_get_object_terms( $group_id, 'bp_group_type' );
 
-		if ( ! is_wp_error( $types ) ) {
-			$types = wp_list_pluck( $types, 'name' );
+		if ( ! is_wp_error( $raw_types ) ) {
+			$valid_types = array();
+
+			// Filter out currently unregistered group types.
+			foreach ( $raw_types as $key => $gtype ) {
+				if ( bp_groups_get_group_type_object( $gtype->name ) ) {
+					$valid_types[] = $gtype;
+				}
+			}
+
+			$types = wp_list_pluck( $valid_types, 'name' );
 			wp_cache_set( $group_id, $types, 'bp_groups_group_type' );
 		}
 	}
diff --git tests/phpunit/testcases/groups/types.php tests/phpunit/testcases/groups/types.php
index b0ee0d0..18e5ca6 100644
--- tests/phpunit/testcases/groups/types.php
+++ tests/phpunit/testcases/groups/types.php
@@ -251,4 +251,16 @@ class BP_Tests_Groups_Types extends BP_UnitTestCase {
 
 		$this->assertEqualSets( array( 'bar' ), $types );
 	}
+
+	public function test_groups_get_type_should_not_return_unregistered_types() {
+		$g = $this->factory->group->create( array( 'creator_id' => self::$u1 ) );
+		bp_groups_register_group_type( 'foo' );
+		bp_groups_set_group_type( $g, 'foo' );
+
+		// Directly set a type that hasn't been registered.
+		bp_set_object_terms( $g, 'ugh', 'bp_group_type', true );
+
+		$type = bp_groups_get_group_type( $g, false );
+		$this->assertEquals( array( 'foo' ), $type );
+	}
 }
