OBD-II code · P0087
On this page
- What the code actually means
- Symptoms
- Is it safe to drive?
- What causes it, most common first
- How to diagnose it, in order
- 1. Read freeze-frame data first
- 2. Listen for the prime
- 3. Connect a fuel pressure gauge
- 4. Separate low side from high side on DI engines
- 5. Inspect the filter and strainer
- Fixes
- How to reset the code
- Related OBD-II codes
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
| Fix | Cost (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.