We are currently investigating an issue affecting Google PhishRIP queries, which may cause them to fail.
monitoring
Based on our investigation into the recent errors affecting Google PhishRIP queries, it appears these may be related to suspended Gmail accounts. We are continuing to monitor the issue.
resolved
Upon further investigation we have determined that the errors affecting Google PhishRIP queries were related to individual issues on Google accounts.
SAT Account Settings not Loading
Started August 4, 2026 at 7:19 PM UTC · 16h 58m
IssuesMinor incident
Affected components
Console
identified
We have identified an issue preventing account settings from loading in the SAT console.
monitoring
A fix has been implemented and we are monitoring the results.
resolved
This incident has been resolved.
Unexpected Emails being quarantined by PhishRIP
Started July 28, 2026 at 8:00 PM UTC · 22h 58m
IssuesMinor incident
Affected components
PhishRIP
investigating
We are investigating an issue related to emails being quarantined by PhishRIP unexpectedly
monitoring
A fix has been implemented for this issue and PhishRIP queries are no longer quarantining messages unexpectedly. We are still investigating queries that may have been impacted
resolved
This incident has been resolved.
postmortem
## **Summary**
On July 28, 2026, an update to the PhishRIP service caused some PhishRIP search queries to match more broadly than they should have. Benign emails that didn't meet the configured sender criteria were quarantined across some customer accounts.
Automated monitoring and customer support tickets surfaced the problem quickly. Engineering reverted the change within approximately 25 minutes of declaring the incident and stopped the unintended quarantining. Engineering then manually restored the incorrectly quarantined emails to customers’ inboxes.
## **Root cause**
On July 28, 2026, we deployed a maintenance update to the query service behind PhishRIP. This update was designed to improve the handling of invalid sender addresses by allowing the system to fall back to searching only the domain portion of the address.
However, existing validation logic used a regular expression that required an "@" symbol in the sender field. When a query used a bare domain, such as [example.com](http://example.com) with no username or "@" symbol, the regex flagged the domain as invalid.
This conflict between the existing validation and the domain-search update caused the system to drop sender criteria entirely. The query ran against inboxes using only its remaining parameters, matching and quarantining emails well outside the intended sender.
## **Timeline**
All times are in UTC.
| **Time** | **Event** |
| --- | --- |
| 19:36 | Our automated monitoring detected anomalous query execution patterns and alerted our engineers, who immediately began investigating. |
| 19:51 | The issue was escalated to a high-severity production incident, and a response team was assembled. |
| 19:52 | Our support team escalated the first customer tickets that reported unexpected quarantines, corroborating the monitoring alert. |
| 19:54 | The root cause was traced to a recent queries API deployment, and engineering began reverting the change. |
| 20:00 | Incident communications were posted to our status page, with PhishRIP marked as Degraded. |
| 20:16 | The deployment was fully reverted. |
| 20:35 | Production checks confirmed that subject and domain queries were again matching only their intended targets, and that no further messages were being quarantined in error. Our status page was updated accordingly. |
| 20:39 | Engineering began restoring the incorrectly quarantined emails. |
| 03:49 \(next day\) | Restorations were completed for all customer query sets logged through our support team. |
## **Mitigation and remediation**
**Code revert.** We weighed halting active PhishRIP operations mid-run against reverting the code. Halting the background tasks would have disrupted legitimate security workflows for every tenant, so reverting was the better option. The code revert was deployed and verified in production within approximately 40 minutes of escalation.
**Email restoration.** To avoid releasing genuinely malicious emails back into customer environments, we manually restored them rather than in bulk. Engineering used internal admin tools to restore emails in batches, and worked with Support to verify each account ID, query ID, and receive customer approval first. All reported accounts were restored overnight.
## **Preventative measures**
* **Regression coverage**: We are adding unit and integration tests for domain-only, non-standard, and bare-string sender queries to catch these input cases before deployment.
* **Query guardrails**: We are adding a check in the query engine that blocks queries from running if their core filtering parameters are dropped during evaluation.
## **Conclusion**
A single validation rule caused this: a regex that assumed every sender field contained an `@`. When queries used a bare domain, that assumption dropped the sender filter and the queries matched far more mail than intended. The fix was straightforward once we found it, and the revert stopped the damage within about 25 minutes of declaring the incident.
Restoring quarantined mail was a harder process: we couldn't restore emails in bulk without risking genuinely malicious emails going back into inboxes. Our team chose to proceed carefully, working account by account with Support throughout the night.
Two preventative measures would have caught this earlier: a test covering domain-only sender queries, and a guardrail that refuses to run a query when its sender filter has been stripped. Both are now planned for. The immediate issue is resolved, and all reported accounts have been restored.
## **Glossary**
* **PhishRIP:** A PhishER feature that lets administrators search for and quarantine matching phishing emails across every user inbox in an organization.
* **Regex \(regular expression\):** A pattern used in software to search text and validate input, such as checking that an email address is formatted correctly.
* **Code revert:** Backing out a software update to return to the previous stable version.
Protect blank purchasing page on store.knowbe4.com
Started July 17, 2026 at 1:18 PM UTC · Ongoing
OutageMajor incident
Affected components
KnowBe4 Website
investigating
We are investigating users being unable to purchase Protect licenses on store.knowbe4.com. We will update this page when we have more information.
monitoring
We’ve implemented a fix and we’re monitoring the results to make sure no further issues occur.
investigating
We have received reports that customers are unable to purchase Protect licenses on store.knowbe4.com. We are investigating this issue and will update this page when we have more information.
monitoring
We’ve implemented a fix for the online store and we’re monitoring the results to make sure no further issues occur.
Defend - Redirect Upon Login
Started July 16, 2026 at 7:48 PM UTC · 1h 32m
OutageMajor incident
Affected components
Console
investigating
We have identified an issue where users may receive a redirect upon logging into Defend, and our engineering team is looking into a fix.
identified
A fix has been identified, and we will be monitoring the results as it rolls out.
resolved
This incident has been resolved.
Protect blank purchasing page on store.knowbe4.com
Started July 15, 2026 at 4:46 PM UTC · 21h 18m
OutageMajor incident
Affected components
KnowBe4 Website
investigating
We are investigating users being unable to purchase Protect licenses on store.knowbe4.com. We will update this page when we have more information.
investigating
We are continuing to investigate this issue.
monitoring
A fix has been implemented and we are monitoring the results.
resolved
This incident has been resolved.
PhishML Degradation
Started July 10, 2026 at 2:30 PM UTC · 0m
Pending
resolved
An upstream feature flag service issue degraded model routing in collaboration-inference, causing PhishML evaluations to return 0/0/0 default errors. The third party deployed a fix, and a code update was deployed to production adding static fallback routing.
All services have recovered and are operating normally.
KSAT Intermittent Login Issues - US
Started July 1, 2026 at 2:40 PM UTC · 3h 21m
IssuesMinor incident
Affected components
Console
investigating
We have received reports that users are experiencing issues when logging into the US instance. We are investigating this issue and will update this page when we have more information.
monitoring
A fix has been implemented and we are monitoring the results.
resolved
This incident has been resolved.
postmortem
## **Executive Summary**
On July 1, 2026, the KnowBe4 Security Awareness Training \(KSAT\) platform experienced a period of degraded performance resulting in intermittent login errors and high latency for users on our United States \(US\) instance. The issue was initiated following a routine platform deployment that introduced an unoptimized database query. This query placed an excessive operational load on our primary database reader cluster, causing database sessions to saturate and subsequent login requests to queue up.
Engineering teams promptly identified the degradation, reverted the deployment, and systematically cleared the backlogged database sessions to restore optimal performance. The issue did not affect data integrity or security, and service was fully stabilized.
## **Technical Root Cause**
The root cause was determined to be a newly introduced query within a standard application update. Upon deployment, this specific query pattern bypassed optimal indexing strategies, resulting in full table scans and highly extended execution times on the database reader infrastructure.
As a high volume of authentication and application requests arrived concurrently, the database reader quickly exhausted its available connection pool due to these long-running, unmitigated database sessions. This resource starvation immediately manifested as severe application latency and intermittent timeouts during the user authentication process.
## **Timeline of Events**
The incident began in the mid-morning hours and progressed through identification, remediation, and verification stages over a period of approximately 152 minutes.
An internal high-severity incident response group was established immediately following automated monitoring alerts indicating that health checks targeting our application programming interface \(API\) routing layer were failing from regional cloud monitoring nodes. This behavior was confirmed by concurrent engineering analysis of user HTTP Archive files, which demonstrated severe latency spikes specifically isolated to the authentication endpoints.
Within three minutes of establishing the response team, cross-referencing recent system changes pointed to a recent application deployment as the primary catalyst. Engineers immediately initiated the rollback process, drafting and approving a revert modification to extract the problematic code from the deployment pipeline.
The deployment of the reverted codebase to the US production cluster commenced shortly thereafter. While the deployment processed over the subsequent twenty-five minutes, technical personnel prepared direct database interventions to clear the residual system strain. Once the stable code version was completely active across the fleet, engineers began systematically terminating the lingering, long-running database sessions that had been spawned by the unoptimized query. To ensure a pristine state, the database reader infrastructure was cycled twice.
Following these administrative infrastructure restarts, operational telemetry showed the database reader load dropping significantly to a healthy baseline of approximately thirty-six percent. System performance normalized, and administrative logging verified that authentication requests were processing within standard latency thresholds. After monitoring the environment to confirm sustained stability, engineers officially marked the incident as mitigated, later shifting the status to fully resolved following an extended window of zero performance spikes and complete passes on all automated sanity test suites.
## **Mitigation**
To alleviate the immediate infrastructure distress and restore user access, the engineering team executed a multi-phased mitigation strategy:
* **Codebase Rollback:** The changes introduced in the recent deployment were immediately isolated, reverted, and redeployed to production to prevent any further generation of the unoptimized query.
* **Database Session Termination:** Internal engineering tools were utilized to explicitly terminate active, long-running database queries that were blocking the connection pools.
* **Infrastructure Cycling:** The database reader instances were restarted twice in succession to flush out stale memory allocations and guarantee that all orphaned database sessions were permanently cleared.
## **Preventative Measures**
To prevent a recurrence of this specific issue and mitigate the impact of similar query-based database bottlenecks in the future, KnowBe4 is implementing the following actions:
* **Enhanced Query Linting and Analysis:** Integrate automated query execution plan analysis into our continuous integration and continuous deployment pipelines to flag unindexed or high-cost queries before they reach production environments.
* **Database Connection Pooling Guardrails:** Adjust database timeouts and implement aggressive circuit-breaker thresholds for user authentication paths to prevent single, long-running query patterns from exhausting the entire connection pool.
* **Load Shedding Policies:** Implement strict application-level timeouts on read-heavy database calls to ensure they fail gracefully rather than degrading the overall availability of the core login workflows.
## **Conclusion**
We sincerely apologize for the inconvenience and friction this performance degradation caused our customers and partners. KnowBe4 is dedicated to maintaining high availability and reliability across our product suites. By refining our pre-deployment automated query validation and bolstering our database connection resiliency, we are actively working to ensure the continuous, seamless operation of the KSAT platform.
## **Glossary of Technical Terms**
* **API \(Application Programming Interface\):** A set of protocols that allows different software applications to communicate with one another. In this context, it routes authentication requests from the user interface to the backend servers.
* **Database Reader:** A dedicated database instance or cluster responsible for handling read-only queries \(such as fetching user profiles or validating login configurations\), separating this traffic from write operations to optimize performance.
* **HAR \(HTTP Archive\) File:** A JSON-formatted log file that records a web browser's interaction with a website, used by engineers to diagnose performance and network latency issues.
* **Latency:** The time delay or duration it takes for a data packet or request to travel from its source to its destination and return a response.
* **Sanity Suite:** A collection of automated tests executed against a deployment environment to quickly verify that the core functionality of an application is working correctly.
Defend - Increased Email Latency (US Only)
Started June 30, 2026 at 4:14 PM UTC · 3h 32m
IssuesMinor incident
Affected components
Mail Flow
investigating
We have received reports that emails sent to Defend are experiencing delays being delivered to inboxes using SMTP. We are investigating this issue and will update this page when we have more information.
resolved
This incident has been resolved.
postmortem
#### Summary
On June 30, 2026, customers using the Defend US service experienced delays in email processing. The incident began at approximately 14:00 UTC and was fully resolved by 19:45 UTC.
#### What Happened
A scheduled maintenance operation began in the early morning of June 30. As this operation progressed, it placed an unexpectedly high load on our infrastructure, which caused email processing to slow down across our US service.
Our team identified the issue and declared an incident at 16:00 UTC. Steps were taken to reduce the load and restore normal processing speeds, including pausing non-essential background activity and engaging our infrastructure provider for additional support.
By 17:45 UTC, email delivery delays had been fully resolved. Email analysis continued to recover and was back to normal by 19:45 UTC.
#### Customer Impact
Email delivery \(SMTP customers\): Emails were delayed in transit by up to 30 minutes between approximately 14:00 UTC and 17:45 UTC. All emails were delivered; no messages were lost.
Email analysis \(Microsoft 365 / Graph API customers\): Email analysis was delayed by an average of 30 minutes before emails were analysed, between approximately 14:00 UTC and 19:45 UTC. Email delivery to end users was not affected.
#### What We Are Doing
We have rescheduled the maintenance operation that triggered this incident to run during an overnight, low-traffic window, giving it sufficient time to complete without affecting the live service.
We are also investing in infrastructure improvements to better isolate maintenance operations from customer-facing workloads, so that future maintenance cannot affect email processing in this way.
PhishML Evaluations Causing PML:BYPASSED Tags to Apply
Started June 30, 2026 at 2:18 PM UTC · 4h 54m
IssuesMinor incident
Affected components
PhishML
investigating
We have identified an issue where PhishML evaluations are causing the "PML:BYPASSED" tag to be applied.
monitoring
We’ve implemented a fix for PhishER and we’re monitoring the results to make sure no further issues occur. Impacted messages can be replayed through all rules and actions. Please be aware this could cause duplicate responses to be sent if an action successfully ran during this incident. If you have further questions or concerns please contact our support team directly: https://support.knowbe4.com/hc/en-us/requests/new
The following Knowledge Base Article contains instructions on how to replay messages: https://support.knowbe4.com/hc/en-us/articles/13169303385619-PhishER-Inbox-Guide#h_01HCNEBF8CJQ98GE9PGM7HGDZ0
resolved
This incident has been resolved.
postmortem
On Tuesday, June 30, 2026, from approximately 07:40 to 19:15 \(UTC\), customers experienced incorrect results from PhishER's PhishML scoring. Affected emails received a PML:BYPASSED tag instead of a legitimate PhishML classification, and confidence scores were missing from impacted messages. Rules and actions that depend on PhishML results also did not activate.
This issue was caused by a code refactor introduced approximately two weeks earlier. This refactor introduced a faulty update that omitted essential drivers required for PhishML scoring to run. However, the issue remained dormant until another update triggered a new PhishML model deployment, which caused the scoring issue to emerge. To resolve this issue, our team rolled back to the last stable deployment and added more capacity to process the resulting backlog of email evaluations. PhishER's PhishML scoring returned to normal performance by 19:15 \(UTC\).
To prevent this type of issue in the future, we have improved health checks by introducing a new endpoint for smoke testing new models before deployment.
KCM GRC - 500 Errors Upon Login
Started June 24, 2026 at 3:48 PM UTC · 21h 23m
IssuesMinor incident
Affected components
KCM GRC
investigating
We have identified an issue where users may receive a 500 error upon logging into KCM GRC, and our engineering team is looking into a fix.
monitoring
We have identified an issue where users may receive a 500 error upon logging into KCM GRC. A fix has been implemented, and we will continue to monitor this issue.
resolved
We have identified an issue where users may receive a 500 error upon logging into KCM GRC. A fix has been implemented, and users should be able to login without error.
postmortem
From Tuesday, June 23, 2026, at approximately 10:03 \(UTC\) to Thursday, June 25, 2026, at approximately 11:54 \(UTC\), some US and EU customers experienced intermittent 502 errors when logging in to KCM GRC.
This issue was caused by network traffic attempting to connect to invalid multilevel subdomains, which overwhelmed the cache serving KCM GRC and resulted in login errors. Our team initially updated the configuration of our content delivery network, which temporarily resolved the errors, but they returned later that day. After further investigation, we identified the caching issue as the root cause and deployed an infrastructure-level fix to prevent multi-level subdomain traffic from affecting the cache. KCM GRC returned to normal performance by 11:54 \(UTC\) on June 25, 2026.
To prevent this type of issue in the future, we are evaluating additional protections to guard against similar traffic that could affect the cache.
No data loss occurred as a result of this issue.
Phishing test report tab unavailable
Started June 18, 2026 at 9:14 PM UTC · 16h 47m
IssuesMinor incident
Affected components
Reporting
investigating
We have received reports of the Phishing test reports tab currently being unavailable. We are investigating this issue and will update this page when we have more information.
investigating
We are continuing to investigate this issue.
monitoring
A fix has been implemented and we are monitoring the results.
resolved
This incident has been resolved.
postmortem
From Tuesday, June 16, 2026, at approximately 17:34 \(UTC\), to Thursday, June 18, 2026, at approximately 22:41 \(UTC\), some customers experienced intermittent unavailability of the **Phishing Security Test Reports** page in the KnowBe4 console.
This issue was caused by a code change that introduced a conflict between two methods for processing phishing campaign data. As a result, phishing campaigns still using legacy phishing categories were unable to load the **Phishing Security Test Reports** page. To resolve this issue, we updated the code to process campaigns correctly under both classification systems, and the **Phishing Security Test Reports** page returned to normal performance by June 18, 2026, at 22:41 \(UTC\).
No data loss occurred as a result of this issue.
KnowBe4 Security Center (KSC) | Human Risk Managment Widget Showing No Results
Started June 18, 2026 at 3:13 PM UTC · 3h 59m
IssuesMinor incident
Affected components
KnowBe4 Security Center
investigating
We have received reports that the Human Risk Managment widget is showing no results in the KnowBe4 Security Center. We are investigating this issue and will update this page when we have more information.
monitoring
We’ve implemented a fix for the Human Risk Management widget and we’re monitoring the results to make sure no further issues occur.
resolved
This incident has been resolved.
Data and User Inconsistencies in Reporting
Started June 16, 2026 at 10:23 PM UTC · 21h 56m
IssuesMinor incident
Affected components
Reporting
investigating
We've identified an issue that has resulted in inconsistent reporting, and our engineering team is looking into a fix.
monitoring
A fix has been implemented and we are monitoring the results.
resolved
This incident has been resolved.
Latency Issues
Started June 15, 2026 at 4:56 PM UTC · 0m
Pending
Affected components
PhishingConsoleTraining
resolved
This incident has been resolved.
KSAT - Widespread User Profile Access Issues
Started June 3, 2026 at 3:07 PM UTC · 3h 7m
IssuesMinor incident
Affected components
Console
investigating
We have received reports of 500 errors occurring when navigating to user profiles. We are investigating this issue and will update this page when we have more information.
monitoring
A fix has been implemented and we are monitoring the results.
resolved
This incident has been resolved.
postmortem
On Wednesday, June 3, 2026, from approximately 14:49 to 16:09 \(UTC\), customers experienced errors when accessing the **User Details** page in the KSAT console.
This issue was caused by an update that introduced missing fields, which prevented the **User Details** page from loading. To resolve this issue, our team updated the console again to restore the missing fields, and the KSAT console returned to normal performance by approximately 16:09 \(UTC\). To prevent similar issues in the future, additional automated tests were added.
No data loss occurred as a result of this issue.
Unable to upload custom content to the new Modstore
Started May 28, 2026 at 6:17 PM UTC · 55m
IssuesMinor incident
Affected components
Training
investigating
We are currently investigating an issue preventing customers from uploading custom content to the new Modstore
resolved
We have identified an issue with uploading custom content to the new Modstore and implemented a fix. Customers should be able to upload custom content successfully.
postmortem
On Thursday, May 28, 2026, from approximately 18:07 to 18:57 \(UTC\), some customers experienced issues uploading custom content to the new ModStore in KnowBe4 Security Awareness Training \(KSAT\).
This issue was caused by an update to the new ModStore that disabled the language selection field in the “Add Translation” upload step, preventing customers from completing that required part of the upload process. To resolve this issue, our engineering team identified the recent deployment responsible for the defect, corrected it, and deployed the update to production. KSAT returned to normal performance by 18:57 \(UTC\).
To prevent this type of issue in the future, we are improving test coverage for the affected upload flow and adding automated checks to catch similar issues before they reach production.
No data loss occurred as a result of this issue.
Protect - Intermittent Issues with Sending Emails (UK Only)
Started May 27, 2026 at 10:05 AM UTC · 5h 38m
IssuesMinor incident
Affected components
Mail Flow
investigating
We have received reports that there is a Intermittent issue sending emails for Protect. We are investigating this issue and will update this page when we have more information.
monitoring
We’ve implemented a fix and we’re monitoring the results to make sure no further issues occur.
resolved
This incident has been resolved.
New Modstore 500 Errors
Started May 21, 2026 at 1:40 PM UTC · 3h 39m
IssuesMinor incident
Affected components
Training
identified
We've received reports that customers are unable to access the new Modstore experience and are receiving 500 errors. We are investigating these issues and will update this page when we have more information.
monitoring
A fix has been implemented and we are monitoring the results.
resolved
This incident has been resolved.
postmortem
# **Summary**
On Wednesday, May 21, 2026, customers using the new ModStore experience within KnowBe4 Security Awareness Training \(KSAT\) were unable to access the ModStore and received HTTP 500 errors. The disruption affected all regional instances and lasted approximately 23 minutes, from 13:17 to 13:40 \(UTC\).
This issue was caused by a defective code change in a routine ModStore deployment. The deployment itself completed successfully, but the change caused the application to return server errors when customers attempted to load the new ModStore. Our engineering team identified the faulty deployment within minutes, rolled it back, and confirmed full restoration of service at 13:40 \(UTC\).
Only the new ModStore experience was affected. Customers using the classic ModStore, and all other KSAT functionality — including training assignments, campaigns, and reporting — remained fully operational throughout.
There was no data loss as a result of this incident.
# **What Happened**
## **New ModStore \(KSAT\)**
At 13:08 \(UTC\) on May 21, 2026, a routine deployment of the new ModStore application began and was completed successfully across all production environments at 13:17 \(UTC\). The release included changes related to integrating the new ModStore natively into the KnowBe4 platform. Immediately following the deployment, the new ModStore began returning HTTP 500 errors to customers attempting to access it.
At 13:28 \(UTC\), internal reports of the errors reached the engineering team, and by 13:30 \(UTC\) engineers had correlated the failures with the deployment. The decision to roll back was made at 13:31 \(UTC\). At 13:32 \(UTC\), with multiple customer support tickets confirming customer-facing impact, a high-severity incident was declared, and on-call engineers were contacted.
The team quickly confirmed the scope: only the new ModStore experience, enabled for approximately half of customers plus those who had opted in, was affected, across all regional instances. The classic ModStore and all other KSAT functionality remained available. A rollback to the previous stable version was initiated at 13:35 \(UTC\) and completed at 13:40 \(UTC\), at which point access to the new ModStore was fully restored. Our public status page was updated at 13:40 \(UTC\) and moved to “Monitoring” one minute later.
During the post-restoration investigation, an engineer noted that a separate infrastructure-as-code deployment earlier that morning had unexpectedly altered a storage Cross-Origin Resource Sharing \(CORS\) configuration used by the ModStore. This change was investigated as a potential contributor and ruled out — it was not related to the 500 errors. The investigation did, however, surface that two separate deployment pipelines were both managing the same infrastructure configuration and silently overwriting each other’s changes. This conflict was remediated during the incident window by assigning the configuration a single owning pipeline. After continued monitoring confirmed stability, the incident was resolved internally at 14:52 \(UTC\), and the public status page was updated to “Resolved” at 17:20 \(UTC\).
# **Root Cause Analysis**
The root cause of this incident was a defective code change included in the 13:17 \(UTC\) deployment of the new ModStore application. Once deployed, the change caused the application to fail to serve customer requests, returning HTTP 500 errors to all users of the new ModStore experience across all regions. The defect was not detected during pre-deployment testing, so the deployment proceeded to production as usual.
Because the failure began at the moment the deployment completed and affected all regions simultaneously, engineers were able to identify the deployment as the trigger within minutes and end customer impact by rolling back to the previous version. The faulty change was withheld for rework and additional validation before any reintroduction.
A secondary issue was identified during the investigation: an unrelated infrastructure configuration change that morning initially appeared connected because of its timing. It was ruled out as a cause, but the investigation revealed that two deployment pipelines shared ownership of the same infrastructure configuration and were overwriting each other. While this did not cause the incident, it added noise to the diagnosis. Because it represented a latent risk, it was also corrected the same day.
## **Detailed Timeline \(UTC\)**
| **Time \(UTC\)** | **Event** |
| --- | --- |
| **13:08** | A routine deployment to the new ModStore application begins. |
| **13:17** | The deployment completes across all production environments; HTTP 500 errors begin for the new ModStore experience. |
| **13:28** | Internal reports of errors loading the new ModStore reach the engineering team. |
| **13:30** | Engineers correlate the HTTP 500 errors with the earlier deployment. |
| **13:31** | Decision made to roll back the deployment. |
| **13:32** | A high-severity incident is declared; on-call engineers are paged. Customer support tickets confirm customer-facing impact. |
| **13:33 – 13:34** | Impact confirmed to be limited to the new ModStore experience; the classic ModStore and all other KSAT functionality are confirmed unaffected. All regional instances are affected. |
| **13:35 – 13:38** | The revert is prepared, and the rollback deployment begins. |
| **13:40** | Rollback completes, and access to the new ModStore is restored. The public status page is updated to “Identified.” |
| **13:41** | The public status page is updated to “Monitoring.” |
| **13:58 – 14:11** | An unrelated same-morning infrastructure configuration change is investigated and ruled out as a cause. A conflicting ownership issue between two deployment pipelines that manage the same configuration is identified and remediated. |
| **14:52** | After continued monitoring confirms stability, the incident is marked resolved internally \(74 minutes after the incident was declared\). |
| **17:20** | The public status page is updated to “Resolved.” |
# **Findings and Mitigations**
## **1. A defective change reached production**
A code change included in a routine deployment of the new ModStore caused the application to return server errors in production. The defect was not caught by the automated tests that run before a release is promoted, indicating a gap in pre-deployment test coverage for this failure mode.
**Mitigations:**
* The deployment was rolled back within 23 minutes of impact beginning, immediately restoring service.
* The faulty change was withheld from redeployment pending rework and additional validation.
* Pre-deployment test coverage for the new ModStore is being expanded to cover the failure mode seen in this incident.
## **2. Detection relied on human reports rather than automated alerting**
Impact began at 13:17 \(UTC\), but the engineering team was first engaged through internal reports at 13:28 \(UTC\) and customer support tickets shortly after, rather than by an automated alert on the application’s error rate. Automated post-deployment checks that ran after the release did not halt the rollout or page the team.
**Mitigations:**
* Error-rate monitoring and automated alerting for the new ModStore are being strengthened so that a spike in server errors immediately after a deployment pages the on-call team directly.
* Post-deployment verification is being reviewed so that failing checks more decisively block or flag a release.
## **3. Two deployment pipelines managed the same infrastructure configuration**
The application’s deployment pipeline and a separate infrastructure-as-code pipeline both defined the same storage CORS configuration, and each deployment silently overwrote the other’s settings. This conflict was not the cause of the incident, but it initially complicated diagnosis and represented an ongoing risk of unintended configuration changes.
**Mitigations:**
* The duplicated configuration was removed from the application pipeline and its state references were cleaned up, making the infrastructure pipeline the single owner of that configuration.
* A review is underway to identify any other resources with shared ownership across pipelines.
# **Customer Impact**
## **KSAT – New ModStore \(all regions\)**
From 13:17 to 13:40 \(UTC\), customers who had the new ModStore experience enabled \(approximately half of customers, plus those who opted in\) received HTTP 500 errors when attempting to access the ModStore and were unable to browse or add training content during that window. All regional instances were affected equally.
Customers using the classic ModStore were not affected. All other KSAT functionality — including active training campaigns, phishing simulations, user enrollments, and reporting — operated normally throughout the incident. No customer action was or is required, and no data was lost or altered.
# **Preventive Measures**
* **Expanded pre-deployment testing —** Test coverage for the new ModStore is being extended to catch the class of defect that caused this incident before a release reaches production.
* **Automated error-rate alerting —** Monitoring on the new ModStore is being strengthened so that elevated server-error rates following a deployment automatically notify on-call engineers, removing the dependency on human reports for detection.
* **Stronger post-deployment verification —** The automated checks that run immediately after a release are being reviewed so that failures block or escalate a rollout rather than passing silently.
* **Single ownership of infrastructure configuration —** Shared infrastructure settings are being consolidated under a single owning pipeline to prevent conflicting automated changes, and an audit is underway to identify any remaining overlaps.
# **Conclusion**
On May 21, 2026, a defective code change during a routine deployment made the new ModStore experience unavailable for approximately 23 minutes, resulting in server errors for affected customers across all regions. We recognize that the ModStore is central to how administrators build their training programs, and we apologize for the disruption.
The response demonstrated the value of fast rollback as a recovery path: the faulty release was identified and reverted within minutes of the first reports, the scope was accurately confirmed early, and no data was lost. The incident also highlighted clear opportunities to improve: stronger pre-deployment testing, automated error-rate detection, and cleaner ownership of infrastructure configuration. These are being addressed through the preventive measures above.
We are committed to the reliability of the new ModStore experience as it rolls out to all customers, to ensuring that issues of this kind are caught before they reach production, and to detecting and resolving issues automatically if they do reach production.
Microsoft Ribbon PAB Operation Timeout
Started May 19, 2026 at 2:16 PM UTC · 3h 48m
IssuesMinor incident
Affected components
Phish Alert Button
identified
We are seeing errors when using the Microsoft Ribbon Phish Alert Button (PAB) to report emails in Classic Outlook. Our team is aware and investigating these errors.
monitoring
A fix has been implemented and we are monitoring the results.
resolved
This incident has been resolved.
postmortem
From Monday, May 18, 2026, at approximately 14:00 \(UTC\), to Tuesday, May 19, 2026, at approximately 15:00 \(UTC\), users experienced timeouts when attempting to use the Microsoft Ribbon Phish Alert Button \(PAB\) in Classic Outlook.
This issue was caused by an update to the PAB's authentication process that was incompatible with the Classic Outlook environment. The update used a loading method that Classic Outlook does not support, which caused the PAB to time out before it could connect to KnowBe4's servers.
To resolve this issue, we updated how the authentication library is packaged with the PAB to ensure compatibility with Classic Outlook. The Microsoft Ribbon PAB returned to normal performance by approximately 15:00 \(UTC\) on May 19, 2026.
To prevent this type of issue in the future, we are updating our processes for compatibility testing and improving monitoring.
No data loss occurred as a result of this issue.
Knowbe4 outage history and incident timeline | Uptimus