
Anyone who has chased an intermittent bug through a codebase will recognise the feeling of standing in front of a cold radiator. The symptom is obvious, the cause is not, and the fastest route to a fix depends on resisting the urge to change things at random. A central heating system is, in effect, a small distributed system: a controller, sensors, actuators, a pump, a heat source and a network of pipes carrying state in the form of hot water. It fails in ways that will feel familiar to developers.
This article borrows a debugging mindset and applies it to a domestic boiler. It is not a repair manual. Gas appliances must only be opened and repaired by a registered engineer, and the point at which to stop poking around is part of the method.
Start with the observable behaviour
Good debugging starts with a precise description of what is wrong. “The heating is broken” is the equivalent of “the app crashes”. A better description records:
- what exactly does not work: heating, hot water or both;
- whether the failure is total, partial or intermittent;
- what the boiler’s display, if any, is showing, including any fault code;
- when it started and what changed beforehand, such as a power cut, a cold snap, bleeding a radiator or a change to the programmer.
Writing this down takes a minute and often reveals the pattern. A boiler that fails only on very cold mornings points to a different class of problem than one that fails every evening at the same time.
Isolate the layer
The next step is to work out which layer of the system is responsible. A simple model has four:

- Inputs and controls: the room thermostat, timer or smart controller telling the boiler when to run.
- Power and supply: electricity to the boiler, gas supply, water pressure.
- The heat source: the boiler itself, which includes ignition, the burner, heat exchanger and safety devices.
- Distribution: the pump, valves, pipework and radiators.
Most faults sit in a single layer, and quick checks can rule layers in or out. If a boiler fires normally when you turn the thermostat up but the house stays cold, the problem is probably distribution. If it never fires, you are looking at inputs, supply or the heat source.
For a structured walk through this logic, see step-by-step boiler fault finding, published by the Gas Safe registered team at Olia’s Plumbing & Heating, which sets out typical symptoms and the checks that match them.
Change one variable at a time
Developers know that making several changes at once ruins a debugging session, because you cannot tell which change worked. The same applies to heating:

- if you adjust the thermostat, change the timer and top up the pressure all at once, you will not know which action solved the problem;
- a reset that works once and then fails again tells you something different from a reset that never works.
Keep a short log: what you checked, what you changed and what happened. It is also precisely the information an engineer will ask for if you do need to call one.
Common bugs and their likely causes
| Symptom | Common suspects |
|---|---|
| No heating, no hot water, blank display | Power supply, fuse, controller |
| Boiler locks out with low pressure | Leak, expansion vessel, recent bleeding |
| Radiators cold, boiler noisy | Air, sludge, pump or flow problem |
| Heating works, hot water does not (combination boiler) | Diverter valve, plate heat exchanger |
| Shuts down in freezing weather | Frozen condensate pipe |
| Cycles on and off repeatedly | Flow temperature, thermostat position, circulation |
These are starting hypotheses, not diagnoses. As in software, the obvious guess is sometimes wrong, and a symptom can be produced by more than one underlying cause.
Where smart controls fit
Smart thermostats and connected controls have turned a boiler into something nearer to a networked device. They can log run times, show room temperatures and send alerts. That data helps in diagnosing a problem: for example, a graph showing the home failing to reach temperature during the same period every day is more useful than a vague memory.

Controls, however, can also be the source of faults. Dead batteries, lost wireless pairing, a failed Wi-Fi connection or a firmware glitch can stop a perfectly healthy boiler being told to run. Before blaming the boiler, check that the controller is online and powered, and try the boiler’s manual override if one exists.
Know the boundary of safe testing
A responsible engineer sets limits, and so should a home user. Safe checks include looking at the display, reading the manual, checking pressure, resetting once, bleeding a radiator and inspecting controls. Unsafe actions include removing the boiler’s sealed casing, tampering with the gas valve, bypassing safety devices and attempting a repair on ignition, burner or flue components.
In Great Britain gas work must be carried out by an engineer on the Gas Safe Register, and the cost of getting this wrong is not a failed deployment but a risk of fire, gas leak or carbon monoxide. If you smell gas, do not operate electrical switches, open doors and windows, and call the National Gas Emergency Service on 0800 111 999. For the control side of the system, the Energy Saving Trust explains how thermostats, programmers and smart controls work.
What an engineer does differently
A good heating engineer follows essentially the same method with better instruments and more experience. They will:
- confirm the reported symptom for themselves;
- take readings, such as gas inlet pressure, flue gas analysis and flow and return temperatures;
- compare the readings with the manufacturer’s specification;
- test components systematically, replacing parts only when the evidence points to them;
- verify the fix under working conditions, not merely when the appliance first starts.
The last step matters. Just as a bug fix needs regression testing, a heating repair needs confirmation that the boiler runs through a full cycle, the radiators heat and the safety devices respond correctly.
Prevention is better than hotfixing
Most heating faults give notice. Maintenance works like monitoring and alerting:
- an annual service picks up worn parts before they fail;
- a magnetic filter reduces sludge, which is a slow-building cause of poor circulation;
- checking pressure at the start of the heating season avoids surprise lockouts;
- logging smart-thermostat data flags drifting performance.
Summary
Treat a heating fault as you would a software bug: describe the symptom precisely, isolate the layer, change one thing at a time and record what happens. Then respect the boundary. A homeowner can check controls, pressure and radiators; opening a gas appliance is a job for a registered engineer. Applied sensibly, the debugging mindset saves time, reduces unnecessary call-outs and makes the conversation with an engineer much more productive.






