When Rippling’s provisioning API deprovisioned Slack accounts accidentally and the reconciliation script that restored team access

November 15, 2025
Written By Digital Crafter Team

 

In the ever-evolving world of enterprise SaaS operations, automation is both a blessing and a potential Achilles’ heel. At the core of many company IT workflows sits provisioning and deprovisioning—processes that automate who gets access to what applications when they join or leave an organization. In 2023, Rippling, a leading workforce management platform, discovered exactly how powerful—and fragile—this system can be after its provisioning API mistakenly deprovisioned Slack accounts across multiple teams. What followed was a scramble to restore team access, a smart reconciliation script, and valuable lessons for operations teams everywhere.

TL;DR

Rippling’s provisioning API unintentionally deprovisioned Slack accounts due to an internal misconfiguration during a platform update. Dozens of employees were abruptly logged out, losing access to vital communication channels. A reconciliation script, developed within hours, revalidated account states and progressively restored the affected Slack access. The incident underscored the need for better version control and staging mechanisms when updating access logic across integrated systems.

The Incident: Unexpected User Deprovisioning on Slack

It began quietly. A few users across different companies using Rippling as their central identity and app provisioning tool reported that they couldn’t access Slack. IT support desks lit up with complaints of auto-logouts, disabled access tokens, and broken communication channels. Something was wrong.

Within hours, Rippling’s platform engineering team identified that a recent update to their provisioning API had caused a domino effect. A misinterpreted logic check categorized several active employees as former employees, triggering the automated deprovisioning routine. Slack, being tightly integrated through SCIM (System for Cross-domain Identity Management), immediately acted on the API calls, locking out valid users.

This wasn’t simply limited to one or two organizations. Multiple businesses relying on Rippling for employee app access reported outages. The most immediate impact was on internal communication. Departments that relied heavily on Slack for real-time collaboration found themselves isolated. Cross-team projects stalled, leadership updates went undelivered, and technical fire-fighting required teams to fallback to email or even SMS in some extreme cases.

Root Cause Analysis

Upon deeper investigation, Rippling’s engineering team traced the issue to a bug introduced during a code deploy. This update aimed to optimize performance in how Rippling evaluated employee status when syncing with third-party services like Slack, Google Workspace, and GitHub.

Specifically, the problematic logic involved a simplified set of rules parsing employee status transitions. Although meant to speed up syncs, it misinterpreted temporary statuses—like “on leave” or “contract pending approval”—as termination events. As a result, the provisioning API invoked Slack’s SCIM endpoint to delete user accounts.

The Slack SCIM API, by design, acts upon Rippling’s instructions in real-time, leading to the unwanted deprovisioning of potentially hundreds of users in under 15 minutes.

The Response: Pulling the Emergency Brake

Rippling’s internal monitoring tools detected a spike in SCIM-related API calls within that time window. Engineers quickly disabled outbound calls to Slack at the firewall level, effectively halting any further deprovisioning. This containment step bought them crucial time to start restoring user access.

Simultaneously, customers were notified about the status of the incident, implications, and an evolving timeline for resolution. While frustrating for affected organizations, the transparency helped manage expectations.

The Reconciliation Script

Faced with the challenge of hundreds of disconnected Slack users, Rippling’s platform engineers designed a rollback solution in record time. The central component was a reconciliation script that cross-referenced the source of truth—employee profiles in Rippling’s core database—with the current provisioning data visible to third-party APIs like Slack’s.

Here’s how the script worked in stages:

  • Inventory Scan: aggregated all users whose Slack status didn’t match their employment status (e.g., employed but no Slack ID).
  • State Validation: ensured that users were truly active and hadn’t been suspended or offboarded elsewhere.
  • Reactivating Slack Users: re-initiated SCIM provisioning jobs for qualified users, effectively setting up their Slack accounts as new while preserving message and channel history wherever possible.
  • Logging and Alerts: every action and API call outcome was logged and monitored to catch secondary issues early.

The first restoration wave focused on users from departments like Engineering, Operations, and Customer Support—roles that were deemed critical for day-to-day function. Gradually the remainder of affected users were restored over the next 24-48 hours.

Challenges in Restoration

Recovery was not without complications. Some accounts, especially those that were deleted and not merely disabled, lost their workspace customizations or preferences. A few Slack integrations that depended on tokens or bots needed to be manually reconnected. Additionally, duplicate invites were sent by mistake to about 10% of restored users causing minor confusion.

Despite these hurdles, more than 95% of users had full Slack access restored within 36 hours. The remaining edge cases were handled through customer-specific support tickets.

Post-Mortem and Lessons Learned

After resolution, Rippling published a comprehensive post-mortem. Some key takeaways included:

  • Testing in Isolation: Future changes to provisioning logic must go through an isolated sandbox that mimics production-scale integrations.
  • Granular Status Checks: More nuanced parsing of employee status will distinguish between leave, contractor stalls, and terminations.
  • Two-Step Deprovisioning Function: They will introduce a delay queue—accounts marked for deprovisioning will not be instantly actioned, allowing for a second validation window.

Furthermore, this incident prompted both Slack and other app vendors integrated via SCIM to explore mechanisms for undoing deletion actions within a short time window—a kind of “soft delete” mode, which could prevent data and access loss due to accidental triggers.

Wider Industry Impact

The incident also resonated industry-wide. Slack administrators and IT leaders discussed the event on forums and LinkedIn threads, using it as a cautionary tale. Many organizations began auditing their own provisioning automations and considering how resilient they would be in similar scenarios.

Conclusion

Automation makes life easier—until it breaks something important. Rippling and its customers discovered this harsh reality during the Slack deprovisioning incident. Still, the company’s rapid response, transparency, and resilience allowed them to course-correct swiftly. Their reconciliation script not only fixed the immediate problem but also set a new benchmark for recovery mechanisms in enterprise systems. Automation isn’t going anywhere, but now, it’s coming with a few extra guardrails attached.

FAQ

  • What is SCIM and how does it relate to this incident?
    SCIM (System for Cross-domain Identity Management) is a protocol for automating the exchange of user identity information. Rippling used it to manage Slack accounts. Faulty data sent via the SCIM interface caused legitimate users to be deprovisioned unexpectedly.
  • How many companies and users were affected?
    While Rippling did not publish exact numbers, estimates suggest dozens of companies and hundreds of users were temporarily locked out of Slack during the peak of the incident.
  • Was any user data lost?
    No user message history was lost. Slack preserves messages even when accounts are deactivated. However, some workspace settings and preferences were reset.
  • Has Rippling made changes to prevent this from happening again?
    Yes, Rippling introduced multi-layer status checks, sandbox testing for provisioning logic, and a delay mechanism to buffer any future deprovisioning actions.
  • Could this happen with other apps like Google Workspace or Zoom?
    Technically yes, if the same provisioning logic were misapplied. However, in this particular case, Slack was the only app affected due to real-time SCIM responses and direct deletion commands.

Leave a Comment