### Apache Airflow version

2.2.0

### Operating System

Debian buster

### Versions of Apache Airflow Providers

_No response_

### Deployment

Astronomer

### Deployment details

astro dev start

### What happened

When I have tried to duplicate a connection first time it has created a connection with hello_copy1 and duplicating the same connection second time giving me an error of 
```Connection hello_copy2 can't be added. Integrity error, probably unique constraint.```




### What you expected to happen

It should create a connection with name hello_copy3 or the error message should be more user friendly.

### How to reproduce

https://github.com/apache/airflow/pull/15574#issuecomment-912438705

### Anything else

Suggested Error 
```
Connection hello_copy2 can't be added because it already exists.
```
or
Change the number logic in _copyN so the new name will be always unique.


### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

airflow/www/views.py
'value': {
            'label': task_group.label,
            'labelStyle': f"fill:{task_group.ui_fgcolor};",
            'style': f"fill:{task_group.ui_color}",
            'rx': 5,
            'ry': 5,
            'clusterLabelPos': 'top',
        },
        'tooltip': task_group.tooltip,
        'children': children,
    }
def get_key_paths(input_dict):
    """Return a list of dot-separated dictionary paths"""
    for key, value in input_dict.items():
        if isinstance(value, dict):
            for sub_key in get_key_paths(value):
                yield '.'.join((key, sub_key))
        else:
            yield key
def get_value_from_path(key_path, content):
    """Return the value from a dictionary based on dot-separated path of keys"""
    elem = content
    for x in key_path.strip(".").split("."):
        try:
            x = int(x)
            elem = elem[x]
        except ValueError:
            elem = elem.get(x)
    return elem
def dag_edges(dag):