Rene
05/17/2026, 2:54 PMERROR: Cannot perform this operation on the trunk branch.
I’d like to avoid the nuclear reset if at all possible. Any thoughts? Thanks!Pylon
05/17/2026, 2:54 PMgt feedback --with-debug-context <any message>Rene
05/17/2026, 2:55 PMBrett Bedevian
05/18/2026, 3:23 PMcheck-in_choose_paired_or_non-paired_customer_check-in_flow as a trunk via gt config, the config change was saved correctly. That is why gt trunk --all and gt log show the right thing.
The issue is that gt also caches per-branch metadata in git. That cached metadata still had this branch tagged as a trunk from before the config change. Since the branch revision had not changed, gt kept reusing the stale cached result instead of re-evaluating the branch. That is a bug on our side and we’ll fix it.
In the meantime, you can force gt to re-evaluate the branch by changing its revision:
git checkout check-in_choose_paired_or_non-paired_customer_check-in_flow
git commit --allow-empty -m "force gt cache refresh"
gt track
When gt track prompts you, choose the intended parent/trunk. Once it completes successfully and prints Tracked branch check-in_choose_paired_or_non-paired_customer_check-in_flow with parent ..., the branch metadata should be repaired and commands like gt move and gt untrack should work normally again.
This empty commit is just a temporary workaround to force the cache refresh. If you don’t want it in the PR, you can remove or squash it later after the metadata is fixed.
Until we ship a fix, if you need to remove a branch as a trunk in the future, first move it onto another trunk with gt move --onto <other-trunk> before removing it from the trunk config via gt config. That should let gt update the cached metadata before the trunk designation is removed, which avoids this stale-cache state.Rene
05/18/2026, 6:29 PMRene
05/18/2026, 7:33 PM