The AI Model That Broke Silently: How Trove Found Out From Its Customers, Not Its Dashboards
Trove’s ML models had no monitoring, no registry and no drift detection, and a customer SLA breach was how the team found out something was wrong. An eight-week MLOps rebuild caught the next problem before a single customer noticed. What the case study reveals about a well-documented, decade-old failure pattern in machine learning systems.

Key Takeaways
- Trove, whose case study is published by the consultancy Hashorn, was running its machine learning models on manually managed EC2 instances with no monitoring, no model registry and no drift detection in place, a setup where the risk stays invisible until it isn’t. It wasn’t: a customer SLA breach hit two weeks before the engagement began, and support tickets, not any internal alert, were how Trove’s team found out.
- Eight weeks later, after Hashorn rebuilt the pipeline on AWS EKS with proper orchestration, a model registry, packaging and drift detection, the new system caught a feature schema change in week six and stopped it from degrading recommendations for a single customer. That’s the core of the story: not that Trove replaced its models, but that it built the capability to notice when a model was quietly going wrong before a customer had to report it.
- What Trove was missing has a name and an academic pedigree. A 2015 Google paper presented at NIPS, “Hidden Technical Debt in Machine Learning Systems” by D. Sculley and colleagues, describes exactly this pattern: ML systems accumulate forms of technical debt that ordinary software doesn’t, including undeclared data dependencies and the absence of monitoring for the specific ways a model can silently degrade, distinct from the debt of writing the model itself.
- The specific failure mode described, drift between online and offline features, is a named, well-documented problem often called training-serving skew, where a model behaves differently in production than it did in training because the two environments compute features in different ways. It’s one of the most common causes of a model that still runs without erroring, while quietly making worse predictions.
- Post-deployment monitoring is also becoming a regulatory expectation for a defined category of AI systems, not only an engineering best practice. Under the EU AI Act, providers of high-risk AI systems must maintain continuous post-market monitoring for the system’s full operational life under Article 72, with serious incidents reportable within 15 days under Article 73, though the compliance deadline for the underlying high-risk obligations was postponed from 2 August 2026 to 2 December 2027 by the EU’s Digital Omnibus on AI. Whether Trove’s own recommendation models would fall into that specific high-risk category isn’t addressed by the case study, and most recommendation engines don’t, but the direction of travel, formal expectations for monitoring after deployment, is the same one Trove’s rebuild moved towards on its own.
The most useful detail in Trove’s case study isn’t the latency number, though it’s a real one. It’s the sentence describing how the company found out its recommendation system had a problem: support tickets started landing. Not a dashboard, not an alert, not an internal review. A model had been serving degraded predictions for long enough that customers noticed before anyone at Trove did. That’s a specific, common and well-studied failure in machine learning systems, and Trove’s response to it, an eight-week infrastructure rebuild rather than a quick patch, is worth reading as a case study in what “shipping a model” is missing if it doesn’t also include a way to know when that model quietly stops working.
What was actually missing
Trove was running seven machine learning models on manually managed EC2 instances with no monitoring, no model registry and no drift detection in place. The risk that setup carried stayed invisible until it wasn’t: a customer SLA breach hit two weeks before the engagement began, exposing undocumented training data lineage, unnoticed drift between online and offline features, and a complete lack of deployment isolation between models. Worth noting precisely: the case study’s own figures shift partway through, from seven models at the outset to “all 12 models” deployed by the end, with no explanation given for the difference. That’s not something this article can resolve, the source itself doesn’t address it, but it’s worth stating plainly rather than smoothing over, since a “fully factual” reading of the case study means reporting the inconsistency rather than picking whichever number reads better.
Hashorn built a full MLOps platform on AWS EKS over eight weeks, using Argo Workflows for orchestration, MLflow as the model registry, BentoML for packaging, and Evidently AI to handle drift detection. All four are genuine, actively maintained open-source projects rather than proprietary or obscure tooling: Argo Workflows is a Kubernetes-native orchestration engine and a graduated Cloud Native Computing Foundation project; MLflow, an ML lifecycle and model registry platform, was created and open-sourced by Databricks in 2018 and has more than 20,000 GitHub stars; BentoML, a model packaging and serving framework founded the same year, has thousands of stars of its own; Evidently AI is an open-source library specifically built for the kind of drift and data-quality monitoring Trove lacked. Models were migrated incrementally rather than in one risky cutover, with canary rollouts and parity testing at every step to catch problems before they reached production traffic. “We had a customer SLA breach that nobody on our team saw coming until support tickets started landing. Eight weeks later, drift detection caught a feature schema change before any customer saw degraded recommendations. That’s the difference,” said Vikram Shah, Head of ML at Trove.
Why “drift” is the specific word that matters
It’s worth being precise about what drift actually means, because it’s not a vague catch-all term. Data drift describes a change in the distribution of the input data a model sees over time, the relationship between inputs and the correct output hasn’t changed, but the data no longer looks like what the model was trained on. Concept drift is different and often more serious: the underlying relationship between inputs and the correct output itself changes, so the same input now genuinely calls for a different answer than it used to. The specific problem Trove’s case study names, “drift between online and offline features,” is a related but distinct failure often called training-serving skew, where the features a model sees in production are computed differently, from a different pipeline or a different code path, than the features it saw during training. A model can pass every offline test and still degrade silently in production if the two environments disagree about how a feature is actually calculated, which is precisely the kind of gap invisible monitoring would have caught and invisible infrastructure did not.
This isn’t a niche concern specific to Trove. A 2015 Google paper presented at NIPS, “Hidden Technical Debt in Machine Learning Systems” by D. Sculley and co-authors, argued that machine learning systems accumulate their own distinctive forms of technical debt beyond ordinary software, including undeclared data dependencies, entangled components where changing one part silently affects another, and the absence of the kind of monitoring that would catch these problems before they reach a customer. Trove’s pre-engagement setup, undocumented training data lineage, no deployment isolation between models, no drift detection, reads as close to a checklist of the exact debt categories that paper describes a decade earlier, evidence that this is a recurring, well-understood pattern in how ML systems fail rather than a one-off oversight.
What actually changed, and what it’s worth against a real benchmark
All 12 models are now deployed with zero downtime, and the three to four manual deploys Trove’s team used to push out every week have dropped to zero. Inference latency fell 63 percent, from 240ms to 88ms, and in week six the new drift detection system caught a feature schema change before it could degrade recommendations for a single customer. The latency improvement is worth placing in context rather than taken as a bare number: moving from ad hoc, single-request serving on manually managed instances to a proper packaging and serving framework with batching support is a documented source of substantial latency and throughput gains independent of the model itself, since much of the improvement comes from how requests are served and batched rather than from the underlying model changing. That makes a 63 percent reduction plausible and consistent with the kind of gain this category of infrastructure change typically produces, though this publication could not independently verify Trove’s specific figure against a matching external benchmark, so it should be read as a credible, company-reported result rather than an independently audited one.
The week-six catch is the more important result of the two, even though it comes with no percentage attached. A monitoring system’s value isn’t measured by a single dramatic save, it’s measured by whether it keeps working quietly in the background indefinitely, and one confirmed catch within the first six weeks of operation is real, if necessarily limited, evidence that the system does what it was built to do. Whether it keeps catching problems a year or three years from now is not something any single case study, this one included, can answer in advance.
The regulatory direction this points towards
Trove’s rebuild happened for a customer-facing, commercial reason, an SLA breach and the support tickets that followed, not because of a regulatory requirement. But the broader shift towards treating post-deployment monitoring as mandatory, not optional, is increasingly showing up in regulation as well as good engineering practice. Under the EU AI Act, providers of high-risk AI systems are required under Article 72 to establish a continuous post-market monitoring system covering the system’s entire operational lifetime, with serious incidents reportable within 15 days under Article 73. Those specific obligations attach to systems classified as high-risk, and the compliance deadline for the underlying high-risk category obligations under Annex III was recently postponed, from the original 2 August 2026 to 2 December 2027, by the EU’s Digital Omnibus on AI. Most recommendation engines, including what Trove’s case study describes, don’t fall into the AI Act’s high-risk categories, so this specific legal obligation likely doesn’t apply directly to Trove’s own system, and the case study makes no claim that it does. What it does show is that the standard Hashorn built towards for entirely commercial reasons, know when your model is degrading before a customer does, is the same standard regulators are now writing into law for the AI systems they’ve decided carry the highest stakes.
What a UK C-suite should take from this
The specific lesson isn’t “hire a consultancy” or “adopt these four tools.” It’s that a machine learning model in production isn’t a finished deliverable in the way a piece of conventional software often is treated as one; it’s a system that can degrade continuously and silently while technically still running without errors, and the only way to know that’s happening is to build the capability to notice, deliberately, before it started. Trove found that out from a customer complaint. The genuinely useful takeaway for any board sponsoring a machine learning initiative is to ask, before the model ships rather than after the first SLA breach, exactly how the organisation would find out if this specific model started quietly getting worse, and whether the honest answer today is a dashboard, or a support ticket.

