Why did our integration stop working after months of running fine?
Most integrations die from credential and permission changes, not code. Refresh tokens get invalidated when a password changes, an employee is deactivated, a role is edited, a plan is downgraded, or the vendor rotates application credentials. Nothing in your code changed, so nothing errors in an obvious way. Data simply stops arriving, and dashboards keep showing old totals as though they were current.
The usual suspects
When a stable integration goes quiet, the cause is almost never a bug that waited six months to appear. Work through this list first.
- A password change or security reset on the account that authorized the connection, which invalidates issued tokens on many platforms.
- An employee was deactivated. The integration was connected under their login, and offboarding took it down with them.
- A role or permission was edited. Someone tightened access, and a scope the integration depended on is gone. Calls now return empty results rather than errors.
- A plan or contract change. API access is frequently tied to a tier; a downgrade or renegotiation can remove it silently.
- The vendor changed something. App re-approval, key rotation, a deprecated auth method, or a new required consent screen.
Silence is the real problem
An expired credential rarely produces a red banner. The sync job runs, receives nothing or an unauthorized response it logs and moves past, and finishes. Yesterday's dashboard still renders. A slow week and a dead integration look identical on a chart, and by the time someone questions it, decisions have already been made on stale numbers.
This is why we treat zero and null as different things. Zero means the business did nothing. Null means we do not know. Rendering an unknown as zero is the fastest way to lose trust in a reporting system.
What a resilient setup looks like
Three habits prevent nearly all of this. Connect through a service account that belongs to the company rather than a person. Record a last-successful-sync timestamp per source and display it on every dashboard and brief. Alert on freshness rather than on errors, because the failure you care about produces no error at all.
A weekly automated check that performs one trivial authenticated call against each source, and reports the result, catches most credential decay before anyone notices missing data. It is a small piece of integration plumbing that pays for itself the first time it fires.
Plan for renewal, not just for setup
Integrations are living things. Vendors deprecate endpoints, rotate keys and change consent requirements on their schedule, not yours. Budget attention for maintenance the same way you budget it for vehicles: modest, ongoing, and much cheaper than a breakdown during your busy season. That ongoing ownership is part of what an integrated platform is supposed to carry so an operator does not have to.
Topics: authentication · reliability · monitoring · integration maintenance
Have a version of this question about your own business?
The useful answer usually depends on which systems you run and how they're connected. That's a conversation, not a blog post.