When the launchpad creates a BranchView it sets its group_name to ~user/branch, but it is cached using (effectively) the id of the branch in the Launchpad DB.
Then, when the user reassigns the branch to '~team', and browse to /~team/branch, she sees the same BranchView object, which redirects to '/changes' but because the group_name is out of date it redirects to ~user/branch/changes, which is 404.
I no longer think this is a loggerhead bug, sorry for the noise.
The problem goes something like this:
When the launchpad creates a BranchView it sets its group_name to ~user/branch, but it is cached using (effectively) the id of the branch in the Launchpad DB.
Then, when the user reassigns the branch to '~team', and browse to /~team/branch, she sees the same BranchView object, which redirects to '/changes' but because the group_name is out of date it redirects to ~user/branch/ changes, which is 404.
I no longer think this is a loggerhead bug, sorry for the noise.