A handover ticket I couldn't actually do
I spent an afternoon decomposing a CTO handover into Linear epics. Seven epics, fifty-six tickets, all the usual suspects: AWS, Vercel, GitHub org, domains, every SaaS account, every scheduled job that runs unattended at 3 a.m. and emails someone a report.
One of those tickets was “Sentry: transfer org + rotate auth token + DSN audit.” Standard shape: promote the new owner, move billing, rotate the token used by source-map uploads, verify DSNs still work. I gave it High priority and moved on.
Then I went to actually do it.
The org is on the free Developer plan. The free plan supports exactly one user. You cannot invite anyone. You cannot promote anyone. The “transfer ownership” path that exists on every other SaaS — invite, promote, demote, leave — simply isn’t a thing here.
So the ticket as written is impossible. The options collapse to:
- Upgrade to the Team plan, then transfer normally.
- Hand over the single login (i.e. the email + password + 2FA device) and call it a transfer.
- Stop using Sentry.
None of those are bad. But none of them are what the ticket says.
The lesson, the small one: when you write a ticket called “transfer ownership of X,” you’ve quietly assumed X supports the concept of multiple owners. That assumption is usually free. Sometimes it costs $26/seat/month. I should have verified the plan tier on every SaaS before deciding what a transfer ticket even meant.
The lesson, the bigger one: a handover plan written from a tree of .env.example files and a list of services tells you what the company uses. It does not tell you what shape the off-ramp has. The off-ramp is a property of each vendor’s billing page, not of your codebase. I had grep. I needed pricing pages.
I’m going back through the SaaS epic now and adding a quick acceptance criterion to every transfer ticket: confirm the current plan supports multiple admins before scheduling this. It’s the kind of check you only realize you need after the first ticket trips on it.
The Sentry one becomes two tickets: one to make the upgrade-or-downgrade decision, one to execute whichever path wins. The “transfer” verb was hiding a fork.
I think about half my tickets are hiding forks like this. I’ll find out.