Dana at Harbor Fitness sent the App Store Connect invite on Friday afternoon. Theo at Northside Studio opened it on Tuesday morning and found it had expired. Nobody did anything wrong: Apple's invitations expire 3 days after they're sent, and many platforms put a clock of some kind on an invite. Getting a fresh one is quick once you know where the resend lives, and a few habits stop it happening again. Periods and menu names below come from each platform's help pages at the time of writing.
Get Set Keys sends your client one link for every invite, and you see each step live, including the moment a platform's invite email reaches your private verification address.
Send one link insteadHow long invites last, and how to get a new one
| Platform | Invite lasts | How to get a new one |
|---|---|---|
| App Store Connect | 3 days | Apple says an expired invitation can be resent, so the client resends it from Users and Access. |
| Google Play Console | 30 days | An admin resends it from Users and permissions. You're listed as "Invite sent" until you accept. |
| GitHub organization | 7 days | The client opens the organization's People page, clicks Failed invitations, then chooses Retry invitation from the menu next to yours. Expired invites to outside collaborators are listed there too. |
| GitHub personal repository | 7 days | GitHub doesn't describe a resend here, so the client adds your username again under Settings, then Collaborators. |
| Stripe | 10 days | Stripe doesn't describe a resend option, so the client sends a new invite from the Team tab in Settings. |
| Vercel | 7 days, or 30 on teams that enforce SAML | The invite shows as expired under Pending Invitations. A team owner invites you again from Settings, then Members. |
| Shopify staff user | 7 days | Shopify says to remove the user and add them again, which sends a new invitation. |
| Namecheap | 7 days | Namecheap doesn't describe a resend, so the client cancels the pending invitation under Share Access and adds your email again. |
| WordPress | 24 hours by default | The set-password link has expired, and you can get a new one yourself (see below). |
Cloudflare's docs say an invite can expire but don't give a period. A Super Administrator resends it from the Members page: on your row, which shows a Pending status, they open the menu (...) and choose Resend invite (Cloudflare).
For the exact clicks on the first invite, see App Store Connect, Google Play, GitHub, Stripe, Vercel, Shopify, Namecheap, WordPress and Cloudflare.
The shortest clocks here are WordPress's set-password link and Apple's 3-day invite. Ask for both on a weekday morning, when you can act on them straight away.
WordPress: fix it yourself
When a client adds you under Users, then Add User (Add New User before WordPress 6.8), and ticks Send User Notification, WordPress emails you a link to set your password (WordPress). That link carries a password reset key, and by default WordPress treats those keys as expired after a day (WordPress). You don't need a new invite. On the site's login page, click Lost your password?, enter your username or email address, and WordPress emails you a fresh link (WordPress.org).
Shopify collaborator access
Shopify doesn't publish an expiry for a pending collaborator request. What lapses is the access itself: if nobody from your organization logs in to the store for 90 days, collaborator access expires, and logging in at least once in that window keeps it active (Shopify). You can send the client a new request from your Dev Dashboard, or the client can reactivate you from their Users settings with Actions, then Reactivate user (Shopify Help Center). This matters most in the quiet weeks between project phases.
One link per client, with every step checked. Reserve a founding place
Before you ask for a new one
Sometimes the invite hasn't expired at all. It's sitting where you haven't looked, or it went to an address you don't check. A quick look can save the client a second round.
- Search your inbox and spam folder for the platform's name
- Check the client typed your address exactly as you gave it
- For Google Play, sign in with a Google Account on the exact address that was invited
- For Namecheap, sign in first, then open the link in the same browser
- For a GitHub organization that requires two-factor authentication, turn it on before you accept
If it really has expired, make the resend easy, and own the miss even if the timing wasn't yours. Send the steps again, say when you'll accept, and pick a time you'll be at your desk:
Hi Dana, the App Store Connect invite expired before I could accept it, since Apple's invites last 3 days. Could you resend it from Users and Access this morning? I'll accept it within the hour and let you know it's working.
Get Set KeysOne link per client
With one link, the step turns green when Apple's invite email reaches your private verification address, so you know the clock has started the moment Dana sends it.
Send one link insteadLaunching November 2026
How to stop it happening
Expiry works in the client's favor, since an invite nobody accepts doesn't stay open forever. The aim isn't to beat the clock, just to make sure you're ready when it starts.
- Agree the day first. Ask the client to send short-lived invites on a day you can accept them. For a 3-day invite, Friday afternoon is the riskiest time to send it.
- Use one address everywhere. Give the client one named work email, such as theo@northsidestudio.agency, with a Google Account on it, because Play Console only lets invited users sign in with the address they were invited on. Add your GitHub username for GitHub. For Namecheap, give the email on your Namecheap account, since that's where the invitation goes.
- Accept within the hour. Treat an invite like a meeting request: accept it, open the platform and check the role is the one you asked for.
- Let invites reach you. Add a filter so mail from the platforms you work with never lands in spam. Namecheap can also accept domain invitations for you automatically, under Profile, then Security, then Recovery & Alerts, then Incoming Invitations (Namecheap).
- Tell the client it worked. A one-line "all set, thanks" closes the loop, so they don't wonder whether to send it again.
- Agree a day you can accept
- The client sends the invite to your named address
- You accept within the hour
- Check the role is the one you asked for
- Tell the client it worked
Get Set KeysOne link per client
With one link, reminders go out on their own and you see every step live, so a short-lived invite doesn't sit unnoticed in anyone's inbox.
Send one link insteadLaunching November 2026
Doing this for every client?
Get Set Keys gives each client one link that walks them through these invites and checks each one, so you see the moment an invite arrives. Porter, the AI setup helper on every link, answers the client's questions straight away, and reminders go out on their own. You can reserve a founding place before Get Set Keys launches in November 2026.