When the source goes quiet: a side project, a free feed, and one bad week

· Carl Heaton · Infrastructure Commentary

For several days this month the Companies House data feed went quiet. The streaming API, the live broadcast of company changes as they are processed, kept accepting connections but stopped emitting new events. The most recent change it would replay was from 10 June, even days later. The same pause showed up in the REST search index: filter the advanced search by a date after 10 June and nothing came back, while name searches worked fine. It coincided with planned maintenance and wider GOV.UK availability problems reported around 15 June, and Companies House have been working to restore full service.

I have an unusually direct view of this, because I run a service that lives on that feed: LTDS, a company-data site built on top of the Companies House register. It is worth telling, not because the service is clever, but because it is an honest example of a thing most businesses are doing without quite noticing: betting an entire operation on one source they do not own.

A side project that grew

LTDS started as a personal project. It turns the UK's official Companies House register into something faster and more usable: search, clean company profiles, financial charts read straight from companies' filed accounts, and monitoring that tells you when a company you care about changes.

It is not a side project any more, at least not by the numbers. It tracks 6,090,578 UK companies, effectively the whole active and dissolved register. It has extracted financial histories for 55,529 of them, a feature that shipped two days before the outage and is growing daily. The public company pages served around 1.67 million requests on 15 June, from roughly 934,000 separate IP addresses in that single day. A normal day sits somewhere between one and 1.4 million requests. That is a lot of traffic for something that began as one person's curiosity.

To be clear about the direction of all that traffic: those are requests coming in to LTDS, not requests going out to Companies House. The service holds its own cached copy of the register and serves the public pages from that, so a million daily requests do not become a million daily calls upstream. They are absorbed at our end, which is the polite way to build on a free public source: do the heavy lifting yourself rather than passing every visitor straight through to it. The bulk of the data arrives over a single streaming connection, one long-lived link that receives changes as Companies House publish them, rather than thousands of repeated polls asking "anything new yet?". Beyond that connection, Companies House sees only a steady trickle from the system, a few thousand calls a day, not a flood. That is the whole point of building a layer on top of a source: you sit lightly on it, and you keep serving even when it is not answering.

Every bit of it rests on one feed. A free, public, government feed that nobody at Companies House ever promised would stay up for my benefit. When it paused, the dependency stopped being abstract.

The generous part, and it is most of the part

Let me be clear and fair, because this is the bit most outage takes skip.

Companies House run an enormous public data service that the whole UK economy leans on. Due-diligence tools, monitoring platforms, fintech onboarding, journalists, researchers, and businesses like mine all draw on the same source. Very few countries offer anything comparable, free, at the front door. Keeping a service of that scale running while modernising it is genuinely hard, and maintenance windows and the occasional pause are a normal part of operating infrastructure at that size. The data exists, it is open, and that is a quietly remarkable thing to be able to build on at all.

So the right first response to a pause is not frustration. It is gratitude that the thing is there, followed by good engineering.

The caveat, said plainly

There is one honest qualification to all that gratitude, and it is about money.

The data is free to consumers like me. It is not free to the companies in the register. Companies House fees to the businesses that actually file have risen sharply, and fast. The fee to incorporate a company online went from £10 to £50 in May 2024, then to £100 in February 2026. The annual confirmation statement went from £13 to £34, then to £50. That is a tenfold rise in the cost of incorporation in under two years, and the confirmation statement nearly quadrupling. The increases were presented as funding the new investigation and enforcement powers under the Economic Crime and Corporate Transparency Act, which is a defensible aim.

Here is the point. When a public register is increasingly funded by the businesses it serves, "it is free, do not complain" stops being the whole answer. Paying more is reasonable. It also reasonably raises the expectation that the service stays up. A company paying ten times what it paid two years ago to be on the register is entitled to notice when the register's downstream services go quiet for a week. That is not outrage. It is the ordinary expectation that comes with a bill.

So: deeply grateful for the free data I consume, and clear-eyed that for the people paying, an outage costs a little more goodwill than it used to.

What the pause looked like from underneath

When a feed that emits the country's company changes goes silent, everyone downstream sees the same thing. Their "latest activity" view stops advancing. The heartbeat pauses, and a whole ecosystem feels it at once. That is the useful, slightly unnerving lesson: a large slice of the modern UK data economy depends on this single source, and on a normal weekday it is pushing tens of thousands of company changes an hour without anyone thinking about it.

It showed up in my own numbers too, and I will not pretend otherwise. During the worst of the instability window on 15 June, about 4.2 percent of requests, roughly 71,000 of them, returned errors. That is not nothing. Those were real users seeing a real wobble. The other 95 percent of traffic was served cleanly and fast, around 9 milliseconds on average, but the honest version of this story includes the failures, not just the saves. An outage upstream was visible in my metrics. The job of the engineering is to make it as small and as recoverable as possible, not to claim it never happened.

What good engineering actually does

There is no version of this where the answer is "do not have dependencies". You cannot build a Companies House service without Companies House. Resilience is not the absence of dependency, it is what you do about the dependency you cannot remove. Four things mattered, and they are the transferable part for anyone building on a source they do not control.

Know your source's state, separately from your own. The most useful thing the system did during the pause was tell the difference between "my consumer has broken" and "the source has gone quiet". The health check reported the feed as stale upstream while the connection itself stayed healthy. That meant no false alarm, and a correct diagnosis within minutes: their event, not mine. If you cannot distinguish those two cases, every upstream hiccup looks like your own fire.

Lose nothing. The system tracks its exact position in the stream. When Companies House resume, it picks up from precisely where it stopped and replays everything in between, automatically, with no manual backfill. The missing days are not lost, they are just not published yet. There is nothing to backfill from until the source catches up, and when it does, catch-up needs no human.

This is the part that matters most if you rely on the monitoring. A pause upstream does not mean a missed change. The moment Companies House resume publishing, every event from the quiet period flows through, and anyone watching a supplier, a customer, or a company they have money or trust tied up in is still told about the things that matter: a new filing, a change of control, a status that has shifted. The notification arrives a little later than it would have, but it arrives, and nothing important slips past unseen. The catch-up is automatic, and there is nothing for a user to do but wait for the source to come back.

Degrade gracefully. Where a feed-driven page would otherwise show an empty, broken-looking gap, it falls back to the recent activity already held, so the site stays useful during the quiet period rather than looking dead.

Verify, do not assume. Rather than guess at the cause, I tested the live source directly: connected to the stream, queried the date-filtered search, confirmed the boundary at 10 June. The response was based on evidence, which is also why I can write this with specifics rather than speculation.

None of that is exotic. It is the same discipline behind any sensible vendor relationship: know what state your supplier is in, make sure nothing falls on the floor when they stumble, keep serving your own customers in the meantime, and check rather than guess.

Why this filing exists

Most businesses have a Companies House in their stack somewhere. A single payment processor, one cloud provider, one API that the whole product quietly assumes will answer. We have written before about reading the exit clause before your payment processor becomes the only one you can use, and the shape of the lesson is the same here. The dependency is usually fine, right up until the week it is not.

The point of the LTDS story is not that the engineering is impressive. It is that a personal project quietly grew into something serving the better part of a million requests a day on one free feed, and that the only reason a feed pause was a footnote rather than a crisis was a handful of unglamorous decisions made before they were needed. The data Companies House provide is genuinely valuable. The right response to an occasional pause is not to be angry that infrastructure has weather. It is to build so that the weather costs your users as little as possible.

How Steelwise can help

Working out what your business quietly depends on, what happens the week that source goes quiet, and whether you would even know it was their problem and not yours, is the kind of review we do. No grand resilience strategy required, just a clear picture of what you are standing on. Get in touch.

Further reading

← All filings