When you get an error message that indicates a resource can't be moved because it isn't in a succeeded state, it may actually be a dependent resource that is blocking the move. Typically, the error code is MoveCannotProceedWithResourcesNotInSucceededState.
If the source or target resource group contains a virtual network, the states of all dependent resources for the virtual network are checked during the move. The check includes those resources directly and indirectly dependent on the virtual network. If any of those resources are in a failed state, the move is blocked. For example, if a virtual machine that uses the virtual network has failed, the move is blocked. The move is blocked even when the virtual machine isn't one of the resources being moved and isn't in one of the resource groups for the move.
If the vnet has peering enabled with the vnet where vnet connection is in failed state that could also cause this issue.
The best solution is to get the resource out from the failed state. You can use powershell command to get the resource out of failed state by doing an Get and Set action.
Ex: If the VPN connection is in failed state then use below commands to get it out of failed state.
$connection = Get-AzVirtualNetworkGatewayConnection -Name ConnectionName -ResourceGroupName RGname
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection
Hope this was helpful. Please let us know in case of any additional questions or concerns.
Please "Accept the answer" if the information helped you. This will help us and others in the community as well