OAuth tokens expire silently—here's the window for each platform

27 July 2026

The coffee machine in a co-working space in Minneapolis just clicked off after three hours on the warming plate, and somewhere in the same building an Instagram post failed to publish because a token expired sixty days ago and nobody noticed.

OAuth tokens die quietly and take your scheduled posts with them

Social automation breaks when API access expires, and most platforms don’t warn you first.

Agência Senado no Instagram (54299239684).jpg
Photo: Agência Senado from Brasilia, Brazil via Wikimedia Commons (CC BY 2.0)

Every social scheduler you connect—Buffer, Publer, Zapier, Make—relies on an OAuth token that grants API access to your accounts. Those tokens don’t last forever. Facebook’s expire after sixty days. Twitter’s (now X) last indefinitely unless revoked, but LinkedIn’s need refreshing every sixty-five days if you’re using certain scopes. Instagram inherits Facebook’s sixty-day window because it’s the same API under the hood. TikTok’s tokens expire after twenty-four hours unless you exchange them for a refresh token, which lasts twelve months.

The problem isn’t expiry—it’s silence. Most platforms don’t email you when a token is about to lapse. Your scheduler might retry a few times, log an error you’ll never read, then stop trying. Posts you thought were queued for the next three weeks simply don’t go out. You’ll notice when engagement drops or a client asks why their campaign went dark, not when the connection breaks. Some tools surface the failure in-app, buried under account settings or a notification bell you check once a quarter. By then you’ve already missed a week of posts.

The fix is manual: check token health weekly, set calendar reminders thirty days before expiry if your platform publishes the date, or automate a weekly Zapier ping that tries to post a test status and alerts you on failure. Not elegant, but it’s the only early-warning system most operators get.

Read the full story

WORKFLOW

Zapier filters break when field types don’t match what you expect

You set up a Zap that only fires when a custom field equals “Yes”, but half your subscribers have that field stored as a number, a boolean, or an empty string—and Zapier’s filter condition fails silently because text comparison against a boolean returns false every time. Type mismatches are the second-most common reason automations stop working after token expiry, and they’re harder to spot because the Zap doesn’t error out—it just skips every record that doesn’t match the type you assumed. The fix is boring: always check field type in your source app before you write filter logic, and test with at least three real records that cover edge cases.

See the breakdown

TACTIC

AI prompts break when you iterate without saving what worked last week

You’ve been tweaking a ChatGPT prompt for newsletter summaries for three weeks. Yesterday’s version was perfect—concise, punchy, on-brand. Today you adjusted two sentences to fix a formatting quirk, and now the output is verbose and generic. You can’t remember what you changed, and you didn’t save the prior version anywhere. Prompt iteration without version control turns every edit into a gamble. The solution is low-tech: paste each working version into a dated note, a Git repo if you’re already using one, or a dedicated prompt-management tool like PromptLayer or Dust. When an edit breaks what worked, you can roll back in thirty seconds instead of re-writing from memory.

Try it yourself

READER QUESTION

ConvertKit’s send-time optimisation picks delivery windows per subscriber

ConvertKit’s broadcast send-time personalisation doesn’t send your email all at once—it spreads delivery across hours, targeting each subscriber’s historical open window. The feature looks at past engagement data to guess when someone is most likely to open, then queues your broadcast accordingly. It helps if your list spans time zones and you’ve been sending consistently for months. It backfires if your open data is sparse, your list is small, or you’re announcing something time-sensitive that needs to land simultaneously. Manual scheduling wins when urgency or coordination matter more than marginal open-rate gains. The feature is opt-in per broadcast, so you can test it on evergreen content before committing to it for launches.

Read more

Know someone who would like this? Forward today’s email—every operator we reach is one closer to running an online business with a little less friction.