P0087 is a system code, not a component code. It does not say a part has failed; it says the engine asked for a rail pressure, did not get it, and the gap stayed too wide for too long. That distinction decides the whole diagnosis, because the cheapest causes and the most expensive cause produce exactly the same code. The temptation is to read "fuel rail pressure too low" and look at the high-pressure pump. The correct order is the opposite: work the low-pressure side first, and use a number rather than an impression. GM's own service bulletin covering these codes on the Duramax LML and LGH gives a usable starting spec — there should be at least 10 psi of fuel pressure on a gauge attached to the fuel system service port. That single measurement separates a starved supply from a genuine high-pressure fault and takes a few minutes. The same bulletin carries the warning that matters most for a fleet: when the injection pump has failed, the correction is not simply a new pump. It is replacement of the contaminated parts plus cleaning and flushing of the chassis lines, filter pipes, engine-mounted pipes, filter housing, fuel tank and fuel sender — because a pump that came apart has already sent metal debris through the system. This page covers the diagnostic ladder cheapest-first, what the commanded-against-actual trace looks like, the symptoms and what each one actually indicates, and the repeat-failure trap. Book a walkthrough, or log your first fault free.
Start at the Fuel Filter, Not the Injection Pump. The Code Cannot Tell Them Apart.
For diesel technicians, shop leads and fleet maintenance managers: the cheapest-first ladder, the low-side spec from GM's own bulletin, the commanded-against-actual trace that proves the diagnosis, and why a new pump in an unflushed system fails twice.
No credit card required. Every fault, test and repair on one unit record.
What the Code Is Actually Measuring
The ECM commands a rail pressure for the operating condition and watches the sensor. P0087 sets when actual falls short of commanded by more than the calibration allows, for longer than it allows. Log both values on a hard pull and the fault becomes obvious. We will show you fault data held per unit.
Illustrative trace, not measured data from any specific engine. The diagnostic value is in the shape: commanded and actual track together at light load, then actual flattens and falls away as demand rises, because the supply side cannot deliver the volume the pump needs. A rail pressure reading taken at idle looks perfectly healthy in this scenario, which is why a static reading is not a diagnosis.
The Ladder, Cheapest First
Work down in order and stop at the first failed test. Most P0087 on working trucks is resolved in the first four rungs, and every rung skipped upward is money spent on a guess. Record each test result against the unit, free.
Sounds insulting until it is the answer. Also confirm nobody put gasoline in it and that the fuel is not gelled or waxed in cold weather.
Stop here if the tank is low or the fuel is wrong — nothing downstream will read correctly.
GM's bulletin for these codes states there should be at least 10 psi on a gauge attached to the fuel system service port. If the low side is starved, the high-pressure pump cannot make rail pressure no matter how healthy it is.
Stop here if low-side pressure is below spec. The fault is upstream of the expensive parts.
A restricted filter is the single most common cause of this code on a working truck. Check the restriction, not just the service interval, and note that a filter changed last month can still be plugged by contaminated fuel.
Stop here if restriction is high — replace, then retest before going further.
Aeration shows as a rail pressure that will not stabilise. Inspect every low-pressure joint, the primer, the filter seal and the tank pickup. A joint can be dry outside and still draw air in, because the pressure inside it is below atmospheric.
Stop here if bubbles are present. Find the ingress before condemning anything.
Measure volume as well as pressure — a pump can hold static pressure and still fail to deliver flow under demand, which is exactly the condition this code describes.
Stop here if volume is short of spec under load.
A leaking injector dumps rail pressure back to tank. Measure return volume per injector against spec; one outlier explains the whole fault and saves a pump.
Stop here if one injector returns far more than the others.
A regulator commanded closed but leaking, or a control valve not responding, will not hold rail pressure. Check the command against the actual response, not just the resistance.
Stop here if the valve does not respond to command.
Last, not first. And if the pump has failed, read the section below before you fit a new one.
At least 10 psi at the fuel system service port
GM service bulletin 16-NA-102, covering P0087, P0088, P0191 and P128E on 2010–2016 Silverado, Sierra, Express and Savana with the Duramax LML or LGH, states that there should be at least 10 psi of fuel pressure on a gauge attached to the fuel system service port at the schrader valve. Confirm the figure for your own engine against its service information — the point is that a low-side specification exists and takes minutes to check, long before anybody quotes a pump.
How Many Times Has This Truck Set This Code?
That is the question that changes the repair. A first occurrence is a diagnosis; a third occurrence on the same unit is a pattern, and usually means the original cause was never found or the system was never properly flushed. In thirty minutes we will show you the fault and repair history held against the unit so the technician sees the previous two attempts before starting the third.
Symptoms, and What Each One Points At
The symptom pattern narrows the cause faster than the code does. Swipe the table on mobile.
| What is reported | What it indicates | What to do with it |
|---|---|---|
| Power loss under load, fine at light throttle | Supply cannot meet demand only when demand is high | This is the classic pattern. Data-log commanded against actual on a hard pull |
| Hard start or extended crank | Rail not reaching the pressure needed to begin injection | Check low-side pressure first — this symptom appears in GM's own bulletin for these codes |
| Stalling, or a stumble that clears | Aeration or an intermittent restriction | Look for air ingress; an intermittent restriction rarely clears this cleanly |
| Derate or limp mode | The ECM protecting the engine from an unmet pressure target | The derate is the symptom. The code tells you the loop failed, not which part |
| Rough running with no smoke | Injection timing and quantity wrong because pressure is wrong | Do not chase injectors until the low side is proven |
| Code returns days after a pump replacement | Debris left in the system, or the original cause never found | This is the failure mode the OEM bulletin exists to prevent |
| Also shows P0088, P0191 or P128E | Pressure control disturbed in both directions, or the sensor is involved | GM's bulletin lists these codes together for this reason — treat them as one investigation |
The Repeat Failure That Costs Twice
GM's bulletin for these codes makes the sequence explicit. When diagnostics point to pump replacement, inspect Fuel Pressure Regulator 1 for magnetic metal debris, and if there is any question, remove and inspect the fuel rail pressure sensor and Fuel Pressure Regulator 2 as well. Where debris is found, the correction is to replace the affected parts and clean and flush the fuel chassis lines, filter pipes, engine-mounted fuel pipes, filter housing, fuel tank and fuel sender. The reason is simple and applies to every common-rail diesel, not only the Duramax: a high-pressure pump that has come apart has already pushed metal downstream into the rail and injectors and left it sitting in the tank and lines. Fit a new pump into that system and it will ingest the same debris. The second failure is not bad luck and it is not warranty — it is the first repair left unfinished. Relevant torque figures in that bulletin include fuel injector bracket bolts at 30 Nm, 22 lb ft, left fuel rail fasteners at 25 Nm, 18 lb ft, and fuel injection feed pipe fittings at 30 Nm, 22 lb ft; always work to your own engine's current service information.
Bulletin details per GM 16-NA-102, issued May 2016 and revised August 2019, as published in NHTSA's technical service bulletin archive. Put the flush on the job template rather than leaving it to memory — link it to the inspection report and the preventive maintenance schedule so the fuel filter interval and the fault history sit on the same record.
P0087 Questions Technicians Ask
What does P0087 mean?
Fuel rail or system pressure too low — specifically, that actual rail pressure fell short of what the ECM commanded by more than the calibration permits. It identifies a failed pressure loop, not a failed part, which is why the same code can come from a plugged filter or a destroyed pump. Talk it through with us.
Can I still drive with a P0087?
You may be able to, but you should not plan to. The engine will usually derate to protect itself, and the underlying causes range from a restricted filter to a pump shedding metal into the fuel system — and continuing to run on the latter makes the repair substantially worse. Get the low-side reading before deciding anything. Open the fault on a free account.
What is the most common cause of P0087?
On a working truck, restriction on the low-pressure side — a plugged fuel filter or water separator — followed by air ingress and a weak transfer pump. The high-pressure pump is a real cause but a less frequent one, and it belongs at the end of the ladder rather than the start. See the ladder applied to your fleet.
How do I test for this properly?
Two measurements do most of the work. First, low-side pressure at the service port against specification — GM's bulletin for these codes cites at least 10 psi for the engines it covers. Second, a data log of commanded against actual rail pressure during a hard pull, because a rail pressure that looks fine at idle can collapse under demand. Everything else follows from those two. Record the readings per unit free.
Why did P0087 come back after a new pump?
Most often because the system was not flushed. A pump that failed internally sends metal debris through the rail and injectors and leaves it in the lines and tank, and the replacement pump ingests it. The OEM correction for debris findings includes cleaning and flushing the chassis lines, filter pipes, engine-mounted pipes, filter housing, tank and sender — not just fitting the pump. The other possibility is that the pump was never the cause. Review a repeat failure with us.
Does P0087 mean I need injectors?
Not by itself, but a leaking injector is a genuine cause because it bleeds rail pressure back to tank. Measure return flow per injector against specification before replacing any; one clear outlier explains the fault and saves the pump. Replacing a full set on suspicion is the most expensive way to guess. Log return-flow results free.
What does it mean if P0087 and P0088 are both stored?
It means pressure control is disturbed in both directions, and it is worth treating as one investigation rather than two. GM lists P0087, P0088, P0191 and P128E together in the same bulletin for these engines, with debris in the injection pump system as the stated cause — so both codes appearing together raises the priority of inspecting for contamination rather than chasing each code separately. Bring the code history to a session.
The Third Time This Code Appears, the History Should Be on the Screen
FleetRabbit keeps every fault, every test reading and every closed work order against the unit, so the technician opening a repeat P0087 can see the low-side reading from last time, whether the system was flushed, and which parts were already replaced — before spending anything.
No credit card required. Start with the truck that keeps coming back.