What's actually going on
Here's the short version: your tankless heater won't run at full output unless it knows it can safely push combustion gases outside. When something blocks that path, the unit backs off or shuts down to protect you.
The "upstairs only" clue is a bit of a red herring. Nothing's wrong with your upstairs plumbing. Those fixtures are just the farthest from the heater, so they're first to feel it when the unit derates.
Think of it like a car losing power going uphill. The engine's fine, but it's choking on a restricted intake. Your heater does the same thing when its vent gets pinched.
Most of the time the fix is outside at the vent caps or at the condensate trap. Both are things a careful homeowner can check. The parts you shouldn't touch are the pressure switch, blower, and any vent repiping.
The likely causes, ranked
I've laid these out roughly in the order I'd check them on a real service call. You can work the same order at home for the parts that are safe to touch.
Start outside. A blocked vent termination is the single most common reason a tankless unit throws a venting code, and it costs nothing to rule out.
If your fault only shows up on freezing mornings, jump straight to ice. Condensing units make wet exhaust, and that moisture loves to refreeze right at the cap.
Next comes the condensate side. A clogged trap or spent neutralizer backs water where it shouldn't be, and a lot of control boards report that as a venting or safety fault even though the vent itself is clear.
The internal stuff, blower and pressure switch, comes last. Those are real failures but less common, and they're not DIY territory on a gas appliance.