Skip to content
SoakRight

Home / Heating and errors

Hot tub error codes decoded: what FLO, DRY, OH, and SN mean by controller brand

Hot tub error codes belong to the control system, not the tub brand. Decode FLO, DRY, OH, and SN by controller and fix flow faults the right order.

By the SoakRight water-care team Published October 27, 2026 8 min read
hot tub topside control panel glowing with a blinking flow-related error code

About five to ten minutes after the cover comes off and the power goes back on, a code appears on the topside panel and the jets go quiet. That timing is not a coincidence. Most flow faults need the pump running for a minute or two before the system can confirm there is a problem. The code shows up right when someone is standing there wondering why the water stopped moving.

The single most useful thing to know about that code: it did not come from the spa manufacturer whose name is on the cabinet. It came from a control system built by one of two companies, Balboa Water Group or Gecko Alliance, who supply the electronics to dozens of hot tub brands. Arctic Spas, Sundance, Hot Springs, and most other manufacturers do not build their own circuit boards; they buy a Balboa or Gecko pack, wire it into their plumbing, and put their own faceplate on the topside control. So a code from a Sundance tub and the identical code from an unrelated brand often mean the exact same thing, because underneath the badge it is the same controller running the same firmware family.

Find out which controller runs your tub

Flip the topside panel over, or look at the label inside the equipment compartment door. A Balboa pack usually reads BP followed by a number (BP500, BP2000), or shows a model like VS300, VS500, or VS700. A Gecko pack shows in.xe, in.yj, in.ye, or in.yt somewhere on the label. Once that letter-number combination is identified, every code on the display maps to one of two manuals instead of a brand-specific mystery.

Code family Balboa label Gecko label What it actually means Fix priority
Flow fault HFL then LF (older systems: HL, LF) FLO Not enough water moving through the heater to carry heat away Filter, then pressure switch, then airlock
Dry-fire protection DR / DY Included in FLO on most Gecko packs Little or no water actually reaching the heating element Water level, then pump prime
Overheat OHH (heater), OHS (spa-wide) OH (spa), HL (heater), AOH (cabinet) A sensor read past its shutoff threshold Cool the water, check flow, check cabinet ventilation
Sensor SN Prr The two temperature sensors disagree with each other Reseat connections, swap sensor positions to isolate

Inflatable and plug-in spas use their own short codes (such as E01 or E02 style) from the pump unit's maker, covered in inflatable spa error codes. Once a fault is fixed, the reset steps for each panel type are in resetting a hot tub control panel.

FLO, HFL, LF: the flow code you will see most often

loosening a union nut slowly to bleed trapped air from hot tub plumbing
close-up of a pressure switch checked for debris during a flow error diagnosis

Gecko's own troubleshooting guide is blunt about what FLO means: the system detected no water flow during main pump operation. Balboa's version of the same idea escalates in two steps on newer BP-series systems. The first warning is HFL, heater flow reduced, and it clears itself and restarts heating after about a minute if flow returns. If the same shortfall happens again, the system steps up to LF, heater flow failed, and disables the heater until someone presses a button to reset it. Older Balboa VS300 systems label that same general flow-fault escalation HL then LF instead: HL flags a significant mismatch between the two temperature sensors that points to a flow problem, and it steps up to LF if the "HL" message recurs a fifth time within 24 hours.

Whatever the exact three or four letters on the display, fix it in this order:

  1. Pull the filter and rerun. A clogged or wrong-fit cartridge is the single most common cause, and it is the fastest to check. Reinstall a clean filter (or run briefly with none) and see if the code clears. The full rinse-and-soak routine lives in the filter cleaning guide.
  2. Check the pressure or flow switch. If a clean filter does not fix it, low water level, a closed valve, or debris jammed in the switch itself can be holding it in the "no flow" position even with the pump running fine. Balboa's own manual lists exactly this checklist for any flow fault: water level, suction restrictions, closed valves, trapped air, closed jets, and pump prime.
  3. Burp the pump after a refill. A fresh fill almost always traps a pocket of air in the plumbing, and that pocket reads to the sensor as no flow even though the pump is running. Gecko's fix is to start the pump, slowly crack one of the union nuts near the pump or heater until water (not air) starts to weep out, then retighten it. Do this with the power on and stand clear of spraying water. Keep hands and tools away from any wiring while doing it, and stop if water reaches the equipment. If the pump will not prime at all, the priming guide walks through it step by step.
a dirty pleated cartridge filter pulled from its housing to clear a flow error

Both major controllers publish a specific minimum flow number for their heaters. Gecko specifies at least 68 liters per minute (about 18 GPM) through the heater; Balboa's manual states its heater needs at least 20 GPM. Neither number is a coincidence. A spa heater relies on a certain volume of moving water to carry heat away from the element fast enough that it never gets a chance to scorch a dry spot. Both companies engineered their flow switches around that requirement.

DRY, DR, DY: not enough water at the heater itself

Dry-fire protection is a narrower version of the flow problem, and it is worth treating separately because the fix is more specific. On a Balboa VS300 system, DR means the control detected possible inadequate water, poor flow, or air right at the heater, and it shuts the spa down for 15 minutes as a cooldown before allowing a reset. If the same condition happens a third time, the display escalates to DY and will not reset itself at all; someone has to press a button.

The practical difference between a flow code and a dry-fire code is where the sensor sits. A pressure switch downstream of the pump can trip on general low flow. A dry-fire sensor sits directly at or in the heater tube and is watching for the specific condition of little or no water actually touching the element, which happens most often right after a drain and refill when the heater has not filled completely, or when the water level has dropped below the intake. Checking the water level first, then working through the same filter and airlock steps above, resolves the great majority of DR/DY and equivalent codes without a service call.

OH, OHH, OHS, HL: overheat codes and why the numbers differ

Overheat protection exists at more than one point in the system, which is why the exact temperature number on the display varies. Gecko's documented threshold for its general OH message is 108°F (42°C) at the spa water. The manual gives an explicit instruction not to enter the water once that code appears. Its HL code is a separate, hotter threshold measured at the heater itself: 119°F (48°C). Balboa's current BP-series manual documents two similar tiers: OHS at 110°F (43.3°C) for the whole-spa reading, and OHH at 118°F (47.8°C) measured inside the heater. Both of Balboa's codes reset automatically once the water cools below 108°F (42.2°C).

Those numbers do not match exactly between the two companies, and that is expected rather than a mistake in one manual or the other. Each company sets its own thresholds and reset points in firmware, and the panel display is telling the truth about the numbers that specific board was programmed with. What stays consistent across both is the underlying cause list: check ball or slice valves are open, clean the filter, check for debris on the heater element, verify the temperature sensor is fully seated, and in very hot weather check that the equipment cabinet has enough ventilation. A tripped overheat code is almost always the flow problem wearing a different mask, since a heater that cannot move water past itself fast enough will eventually read hot even with a modest set temperature.

Gecko's AOH code is a genuine outlier worth knowing about separately: it tracks the ambient temperature inside the equipment skirt getting too hot for the circuit board, most common on tubs installed in full sun with poor cabinet airflow. The fix there is ventilation, not water flow.

SN, Prr: when the two sensors disagree

Every heater has two temperature sensors reading the same water, and the control system constantly compares them against each other as a sanity check. Balboa's SN-family code means those two readings are out of balance. If the mismatch is intermittent, alternating with a normal reading, the manual treats it as possibly a temporary condition; if the SN message is flashing by itself with no normal reading in between, the spa has shut itself down and the mismatch is being treated as real. Gecko's equivalent is Prr, a continuous check on the regulation probe against its own normal range.

A genuine sensor problem, as opposed to a flow problem that is confusing the sensors, usually traces back to a loose or corroded connector rather than a failed sensor itself. Reseating the connector at the board is worth trying before assuming a part needs replacing. If a technician is already involved, swapping the two sensor positions with each other (moving what was in the A jack into the B jack and vice versa) is a standard diagnostic: if the same physical location keeps reading high no matter which sensor plugs in there, the board is the problem; if the high reading follows the sensor to its new jack, that sensor is the problem.

No code at all, just a cold tub

Sometimes there is no flashing letter combination anywhere, the panel looks normal, and the water is simply cold. That is a different troubleshooting path entirely, one that starts with confirming the heater relay is actually being commanded on rather than assuming a fault the panel is not reporting. The not-heating guide covers that scenario end to end, including the polling behavior that makes a healthy tub occasionally look like it is doing nothing for 20 or 30 minutes at a stretch.

What to do when the code will not clear

Work through the fixes above in order once, and if the exact same code returns within a day or two of clearing it, that is the signal to stop repeating the same steps and treat it as a component-level problem: a failing pressure switch, a heater element with a genuine flow restriction, or wiring that needs a multimeter rather than a wrench. Owner troubleshooting stops at the filter, water level, valves, airlocks and the panel reset; anything that needs a meter, the heater terminals or the 240V side is a job for a licensed electrician or a qualified spa technician. If the code keeps returning alongside a tripped breaker rather than a clean reset, that combination points toward wiring or a failing heater element rather than a simple flow restriction, and the breaker-tripping guide covers that overlap. And if the whole episode started right after a fresh fill, a stubborn airlock that will not clear after one or two tries is often easier to solve by draining a few inches and refilling slowly than by fighting the union nuts repeatedly; the full method is in the drain-and-refill guide.

Questions owners ask

My display shows FL1 or FL2 instead of FLO. Is that different?

Same family, different generation of firmware or a rebadged panel. Both are flow faults. Work through the filter, pressure switch, and airlock steps in order regardless of which exact label is showing; the underlying cause list does not change.

Why does the code always appear five to ten minutes after I turn the power back on, never right away?

The pump has to run for a while before the control can confirm flow is missing, and the first warning stage often clears itself, so the code shows up only once the check has failed long enough. On Balboa BP-series panels an LF code needs a manual button press to reset the heater after the flow problem is fixed; on Gecko panels, cycling power at the topside or the GFCI breaker is what re-arms the check. Pressing reset before fixing the underlying cause just brings the same code back on the next run cycle.

Is it safe to keep soaking with an OH or OHH code showing?

No. Get out and stay out until the water cools and the code clears, since the code means a sensor read water hotter than the shutoff limit. An overheat code that keeps returning after the water has fully cooled and the filter is clean points more often at the temperature sensor itself being loose or miscalibrated, which is a shorter list to check but more often needs a technician if reseating the connector does not fix it.

I cleared the flow code once and it came right back the next day. What now?

Before repeating the same fix, note when the code returns. A pattern that shows up overnight or first thing in the morning often points to the water level itself, not the switch or the filter: evaporation can drop the line close to the skimmer intake by morning even though it looked fine the evening before. Topping off an inch or two above the skimmer's minimum mark rules that out within a day. If the code still returns after topping off, that is the point to move on to the pressure switch and filter checks rather than repeating a level fix that already did not work.

Keep going

What this page is based on

  • Gecko Alliance, Y Series and in.xe Troubleshooting Guide
  • Balboa Water Group, BP Troubleshooting & Service Manual
  • Balboa Water Group VS300 control system error code reference (published by Pur Spas)

Your own owner's manual wins if it says something different for your model.