Skip to content
howtofixcar.com

OBD-II code · P0087

High severityPowertrain — Fuel7 min readUpdated

P0087 Code: Fuel Rail Pressure Too Low

What the code actually means

SAE J2012 defines P0087 as "Fuel Rail/System Pressure — Too Low". The PCM compares the fuel rail pressure sensor reading against a target that changes with load. When actual pressure falls below that target by more than the calibrated margin, for longer than the calibrated time, the code sets.

The target pressure depends on the system. A conventional port-injection engine runs roughly 45–65 psi. A gasoline direct-injection (GDI) engine runs a low-pressure circuit around 50–70 psi feeding a high-pressure pump that builds 500–3,000+ psi at the rail. Diesel common-rail systems run far higher still. P0087 can come from either circuit on a DI engine, so the first job in diagnosis is figuring out which side is short.

P0087 is a demand-related code. It often appears only under load, because that is when the fuel system is asked for its maximum and a weak component can no longer keep up.

Symptoms

  • Check engine light, often flashing or with a stored limp-mode flag.
  • Hard stumble, hesitation, or buck under acceleration.
  • Long crank or no-start when the fault is severe.
  • Loss of power and reduced top speed (limp mode).
  • Stalling at idle or when coming to a stop.
  • Possible lean codes (P0171/P0174) riding alongside, since low pressure starves the injectors.

Is it safe to drive?

If the car still drives, get it somewhere safe and stop. Continuing to hammer a weak high-pressure pump or run lean under boost can turn a pump repair into a pump-plus-cat repair.

What causes it, most common first

1. Clogged fuel filter or in-tank strainer. A restricted filter chokes flow, and pressure collapses the moment the engine demands more. Clue: pressure is fine at idle but sags hard under throttle; filter has not been changed in a long interval. The in-tank sock strainer is the silent version of this on filter-for-life systems.

2. Failing low-pressure (lift) pump. A worn in-tank pump cannot sustain volume, so rail pressure drops as demand rises. Clue: weak or absent prime sound at key-on; low-side pressure below spec on a gauge; the problem worsens as the tank empties.

3. Failing high-pressure pump on DI engines. A worn cam-driven HPFP, or a stuck/leaking control valve, fails to build rail pressure even when the low side is healthy. Clue: low-side feed reads normal but high-side pressure never reaches target under load; sometimes a ticking noise from the pump.

4. Stuck-open or leaking pressure regulator. A regulator that bleeds off too much fuel keeps the rail below target. Clue: pressure that will not build at all, or drops off rapidly after key-off.

5. Leaking injector or fuel line. A dripping injector or a seeping line lets pressure escape faster than the pump can replace it. Clue: fuel smell, visible wetness, or a single soot-fouled plug.

6. Electrical fault in the pump circuit. A bad relay, voltage drop, or corroded connector limits pump output. Clue: low pump voltage at the connector during prime; intermittent behavior. See P0230.

How to diagnose it, in order

1. Read freeze-frame data first

Note whether the code set at idle, cruise, or wide-open throttle. A WOT-only fault points at delivery volume (filter, pump). A pressure that never builds at all points at the regulator or HPFP control valve.

2. Listen for the prime

Turn the key to ON without cranking. You should hear the in-tank pump prime for about two seconds. Silence points at the pump, relay, or wiring before you ever reach for a gauge.

3. Connect a fuel pressure gauge

On a port-injection car, tap the Schrader test port and compare against FSM spec at idle and during a snap-throttle test. Low and sagging confirms a delivery problem.

4. Separate low side from high side on DI engines

Use a scan tool that reads both desired and actual high-side pressure. If the low-side feed is in spec but the rail never reaches target under load, the high-pressure pump or its control valve is the suspect. If the low side is already weak, fix that first.

5. Inspect the filter and strainer

If pressure is low everywhere, drop the filter or pull the in-tank pump assembly and inspect the strainer sock. A clogged screen is cheap and common.

Fixes

FixCost (USD)
Replace fuel filter / clean in-tank strainer$30–$120
Replace fuel pump relay$15–$60
Repair pump wiring or connector$40–$200
Replace pressure regulator$50–$250
Replace in-tank (low-pressure) pump$250–$900
Replace high-pressure pump (DI)$400–$2,500
Replace leaking injector$100–$400 per injector + labor

Confirm which circuit is short before buying a high-pressure pump — it is the most expensive wrong guess on this code.

How to reset the code

Clear the code with a scan tool after the repair, then drive a load cycle that includes a few firm accelerations. The fuel system monitor needs to see the engine demand high pressure and the system hold it. Without a scan tool, the code will self-clear after several clean drive cycles, but verifying with live pressure data is the only way to know the repair held.

Frequently asked questions

Can I drive with a P0087 code?
Not safely. Low fuel pressure under load can cause a stall in traffic and runs the engine lean, which overheats the catalytic converter. Get the car somewhere safe and diagnose it before driving further.
Is P0087 always the fuel pump?
No. A clogged filter or in-tank strainer is just as common and far cheaper. On direct-injection engines the high-pressure pump is a real possibility, but verify with live pressure data before replacing it — confirm whether the low side or the high side is short.
Why does P0087 only show up when I accelerate?
Acceleration is when the engine demands the most fuel. A filter or pump that just barely keeps up at idle falls behind under load, so pressure drops and the code sets only during demand.
What is the difference between P0087 and P0088?
P0087 is fuel rail pressure too low; P0088 is too high. They are opposite faults with mostly opposite causes — a starved system versus one that cannot bleed pressure down.