Navigation popUpTo and PopUpToInclusive aren't clearing the backstack
Solution 1:
<action
android:id="@+id/action_login_to_emailLoginFragment"
app:destination="@id/emailLoginFragment"
app:popEnterAnim="@anim/slide_in_right"
app:popExitAnim="@anim/slide_out_right"
app:popUpTo="@+id/loginFragment"
app:popUpToInclusive="true"/>
Your popUpTo is going back to the email login, and then popping it because of the inclusive. If you will change the popUpTo to your login fragment, it will be navigated back to, and popped as well because of the inclusive flag, which will result in your desired behaviour.
Solution 2:
These 2 lines make the trick works:
If you want to go from A to B and expect to finish A:
You need to call B with this action:
<fragment
android:id="@+id/fragmentA"
tools:layout="@layout/fragment_a">
<action
android:id="@+id/action_call_B"
app:destination="@+id/fragmentB"
app:popUpTo="@id/fragmentA"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/fragmentB"
tools:layout="@layout/fragment_b">
</fragment>
If you put log to your fragments you can see that fragmentA is destroyed after calling fragmentB with this action.