Looks like it was removed in BP 1.2, about three years ago. Not sure why.
		
	 
	
	
	
 
		
			
	
	
		
		Hmmm… Well, there is currently no way to hook into a successful group avatar upload. At least none that I can see.
		
	 
	
	
	
 
		
			
	
	
		
		Take a look at
function bp_core_avatar_handle_upload(…)
in bp-core-avatars.php
and use the apply_filters hook near the top. 
But that is pre-upload, so may not be useful to you.
Although you could over-ride the whole function – yikes. 
		
	 
	
	
	
 
		
			
	
	
		
		Yes, I thought of that, but there’s no way to know whether the upload was successful, is there?
		
	 
	
	
	
 
		
			
	
	
		
		Well, you could over-ride the whole function – yikes.
		
	 
	
	
	
 
		
			
	
	
		
		I thought of that. But I was hoping for a solution that would be more forward-compatible. In my opinion there really should be a hook.
I was thinking of overriding the function, but calling it within the overriding function. That seems sort of convoluted, though. And I’d have to find a way to keep it from looping. (I was thinking I could set a global and then check its value to see if this is the first or second call…)
		
	 
	
	
	
 
		
			
	
	
		
		For anyone else out there who might be interested, here is how I solved the issue.
I overrode `bp_core_avatar_handle_upload` with the following function. It calls bp_core_avatar_handle_upload within it, but avoids an infinite loop by setting and checking the value of a global variable.
`global $my_bp_group_avatar_upload;
	function my_bp_group_avatar_upload( $upload, $file, $upload_dir_filter )
	{
		// Global.
		global $my_bp_group_avatar_upload;
		// Check upload filter.
		if ( $upload_dir_filter != ‘groups_avatar_upload_dir’ )
			return;
		// Check if this is the second call.
		if ( $my_bp_group_avatar_upload !== 2 )
		{
			// We are being called for the first time!
			// We are about to call the second time.
			$my_bp_group_avatar_upload = 2;
			// Call the function.
			// We’re calling ourselves too, but this time the global equals 2, so we are now in the else statement.
			if ( bp_core_avatar_handle_upload( $file, $upload_dir_filter ) ) {
				// Do stuff here, the upload was a success.
			}		
			// We’ve executed the function. We can bail out of the original function run.
			return FALSE;
		} else {
			// We have been called a second time, so set this to something other than 2.
			$my_bp_group_avatar_upload = 0;
			// We want to continue with the execution.
			return TRUE;
		}
	}
	add_filter( ‘bp_core_pre_avatar_handle_upload’, ‘my_bp_group_avatar_upload’, 10, 3 );`