Go-Parts
Cart 0
Your cart is empty
Add an item to see it appear here.
Wrenchy
Go-Parts Garage
Expert guides for diagnosing, troubleshooting, and replacing auto parts Expert guides for diagnosing and replacing auto parts
Browse All Articles →
🧭 Diagnostic Flowchart 🎬 Helpful Videos 🛍️ Shop This Part

P2099 on 2017-2024 Cadillac XT5: Post-Catalyst Too Rich (Bank 2) Causes and Fixes

Code P2099 on a Cadillac XT5 with the 3.6L engine most often points to a leaking fuel injector on Bank 2. A GM Technical Service Bulletin (TSB #PIP4964F) specifically advises an injector balance test for this code. Before replacing oxygen sensors, which is a common misdiagnosis, investigate the fuel injectors as the primary cause.

16 minutes to read 2017-2024 Cadillac XT5
Most Likely Cause
Leaking or Faulty Fuel Injector (Bank 2)
Difficulty
4/5
Est. Time
2.5 hrs
DIY Doable?
🔧 Shop
Shop Labor
$150 – $1100
Parts Price
$40 – $450
⚠️ Drivable, but... — Yes, but it is not recommended for extended periods. Continued driving with a rich condition can lead to poor fuel economy, increased emissions, a strong fuel smell, and potential long-term damage to the expensive catalytic converter from overheating. It is best to get the issue diagnosed and repaired as soon as possible to avoid more costly repairs.
Key Takeaways
  • P2099 on a 2017-2024 Cadillac XT5 means the engine is running too rich on Bank 2 (the front cylinder bank).
  • A GM Technical Service Bulletin (PIP4964F) strongly suggests a leaking fuel injector is a likely cause.
  • Do not immediately replace the oxygen sensor; a fuel injector balance test should be performed first to avoid misdiagnosis.
  • Driving with this code can hurt fuel economy and eventually damage the catalytic converter.
  • Due to the complexity of testing and replacing direct fuel injectors, this repair is best left to a professional or highly experienced DIYer.
The trouble code P2099 stands for "Post Catalyst Fuel Trim System Too Rich (Bank 2)". This means the engine's computer (ECM) has detected too much unburned fuel in the exhaust on the Bank 2 side of the engine, even after it has passed through the catalytic converter. The reading is taken by the downstream oxygen sensor (Sensor 2), which is located after the catalytic converter. The ECM constantly tries to adjust the air-fuel ratio to maintain optimal emissions, but when it detects a persistently rich condition that it cannot correct, it reaches its maximum adjustment limit and triggers the Check Engine Light.

What's Unique About the 2017-2024 Cadillac XT5

For the Cadillac XT5 and other GM vehicles with the 3.6L LGX direct-injection engine, this code is specifically addressed by a manufacturer's Technical Service Bulletin (TSB #PIP4964F). The TSB, which has been revised multiple times, strongly suggests that a primary cause is a faulty or leaking fuel injector, not just a bad oxygen sensor. This is corroborated by technician and owner experiences across multiple forums. The diagnostic path for this platform should prioritize an injector balance test (or an Active Fuel Injector Tester - AFIT), which is a more specific starting point than on many other vehicles where an O2 sensor is the default first replacement.

Diagnostic Flowchart

Tap your situation to follow the diagnostic path that matches what you're seeing on this vehicle.

What is the most prominent symptom you are experiencing alongside the check engine light?
Can you perform a fuel injector balance test or check Bank 2 spark plugs?
→ Replace Bank 2 fuel injectors (OEM 12638530, $80-$150 each), Teflon seals, and fuel feed pipe per TSB #PIP4964F.
→ Take to a shop for an AFIT injector balance test. Expect $150-$1100 in labor to replace Bank 2 injectors.
What does the live voltage data show for the Bank 2 Sensor 2?
→ Replace the Bank 2 Sensor 2 downstream oxygen sensor (OEM 12667438, $40-$110). It is located on the radiator side.
→ The downstream sensor is good. Check the upstream sensor (Bank 2 Sensor 1) for incorrect lean readings causing a rich command.
→ Visually inspect the Bank 2 exhaust manifold and flanges. Pressurize the exhaust to 5-8 PSI and spray soapy water to find and repair the leak ($10-$200).
Professional service recommended: The most likely cause, a faulty fuel injector on this direct-injection engine, requires specialized tools for diagnosis 🎬 Watch: Professional guide to testing direct injection circuits and waveforms. (injector balance test) and a complex replacement procedure that involves removing the intake manifold. While DIY is possible for experienced mechanics, the cost of misdiagnosis or improper installation is high.

Symptoms You May Notice

  • Check Engine Light is on
  • Decreased fuel economy by 2-4 MPG
  • Rough idle or engine hesitation during acceleration
  • Black smoke from the exhaust, especially on startup or acceleration
  • A rotten egg or sulfur smell from the exhaust
  • Strong gasoline odor from the exhaust area
⚠️ Don't Waste Money on the Wrong Fix
  • Replacing the downstream oxygen sensor without first testing the fuel injectors. Given the specific GM TSB for this vehicle and engine, injectors should be the primary suspect.
  • Assuming 'bad gas' is the cause. While poor fuel quality can cause issues, it's unlikely to trigger a persistent, bank-specific code like P2099.

Most Likely Causes

  1. Leaking or Faulty Fuel Injector (Bank 2) 🔴 High Probability → Shop Fuel Injector A known issue highlighted by multiple revisions of GM TSB #PIP4964 (up to at least revision F), which specifically recommends an injector balance test for code P2099 on the 3.6L engine across many GM models. Direct injectors operate under high pressure and can develop leaks internally or have degraded spray patterns.
    How to confirm: Perform a fuel injector balance test using a professional scan tool 🎬 See how to perform a scan tool injector balance test. (like a GM MDI with GDS2 software) or an Active Fuel Injector Tester (AFIT). A leaking injector will show a pressure drop or an improper flow rate. Another method is to check the spark plugs on Bank 2; a plug that is black and sooty indicates a rich condition in that cylinder.
    Typical fix: Replace the faulty fuel injector(s) on Bank 2. It is often recommended to replace all three injectors on that bank at the same time. The Teflon seals and sometimes the fuel feed pipe must also be replaced. This requires removal of the upper intake manifold.
    Est. part cost: $50-$150 per injector
  2. Faulty Downstream Oxygen Sensor (Bank 2, Sensor 2) 🟡 Medium Probability → Shop Oxygen Sensor Oxygen sensors are wear-and-tear items that degrade over time. A faulty or slow-to-respond sensor can send incorrect 'rich' signals to the ECM, even if the fuel mixture is normal.
    How to confirm: Use a scan tool to monitor the live voltage data from the sensor. A healthy downstream sensor should show a relatively steady voltage (typically between 0.6V and 0.8V) when the engine is at operating temperature and cruising. If it's stuck high or fluctuating rapidly like an upstream sensor, it's likely faulty.
    Typical fix: Replace the Bank 2, Sensor 2 oxygen sensor. On the transverse-mounted 3.6L LGX in the XT5, Bank 2 is the cylinder bank closer to the front of the vehicle (radiator side), making this sensor relatively accessible.
    Est. part cost: $40-$90
  3. Exhaust Leak ⚪ Low Probability
    How to confirm: Visually inspect the exhaust manifold, catalytic converter flanges, and piping on Bank 2 for cracks, loose connections, or black soot trails. A professional smoke test is the most effective method. TSB #PIP4964 also suggests pressurizing the exhaust to 5-8 PSI and spraying soapy water on gaskets and welds to look for bubbles.
    Typical fix: Repair the leak. This may involve replacing a gasket (e.g., at the converter flange) or welding a cracked pipe.
    Est. part cost: $10-$200 depending on the nature of the repair
  4. Faulty Upstream Oxygen Sensor (Bank 2, Sensor 1) ⚪ Low Probability → Shop Oxygen Sensor
    How to confirm: If the upstream (pre-catalyst) sensor incorrectly reads lean, it will cause the ECM to command more fuel, which the downstream sensor then correctly reports as a rich condition. Monitor live data for both sensors on Bank 2. The upstream sensor's voltage should fluctuate rapidly between approximately 0.1V and 0.9V.
    Typical fix: Replace the Bank 2, Sensor 1 (upstream) oxygen sensor. This sensor is also on the radiator side of the engine and is relatively easy to access.
    Est. part cost: $45-$100

Rare But Worth Checking

  • Failing Catalytic Converter: → Shop Catalytic Converter A clogged or inefficient catalytic converter can trap exhaust gases and cause incorrect readings from the downstream O2 sensor. This is usually accompanied by code P0430 (Catalyst System Efficiency Below Threshold Bank 2) and may cause a lack of engine power.
  • High Fuel Pressure: A faulty high-pressure fuel pump (HPFP), which is cam-driven on the LGX engine, could theoretically cause a rich condition. However, this would typically affect both banks and set rich codes for both (P2097 and P2099).
  • Powertrain Control Module (PCM) Issue: → Shop Engine Control Module (ECM) In very rare cases, a software glitch or internal failure in the PCM can cause incorrect fuel trim calculations. This should only be considered after all other possibilities, especially injectors and sensors, have been exhaustively ruled out.

Diagnosis Steps

  1. Scan the vehicle for all DTCs and review freeze frame data to understand the conditions (engine speed, load, temperature) when the code was set.
  2. Use a scan tool to monitor live data. Watch long-term and short-term fuel trims for both banks. For P2099, expect to see Bank 2 long-term fuel trim at a significant negative value as the ECM tries to pull fuel.
  3. As per TSB #PIP4964F, perform a fuel injector balance test or use an AFIT to check for leaking or malfunctioning injectors on Bank 2. This is the most critical vehicle-specific step.
  4. If injectors test normal, inspect the Bank 2 exhaust system for leaks, especially around the manifold-to-converter gasket and O2 sensor bungs. A smoke test or the pressure-and-soapy-water method can be used.
  5. Test the functionality of the Bank 2, Sensor 2 (downstream) oxygen sensor. Monitor its voltage; it should be relatively stable. If it's stuck high (e.g., >0.8V) or switching like an upstream sensor, it may be faulty.
  6. If the downstream sensor is good, investigate the upstream sensor (Bank 2, Sensor 1) for incorrect readings that could be causing the rich command.
  7. As a final step, check for correct fuel pressure from both the low-pressure and high-pressure systems and consider the possibility of a contaminated MAF sensor or a failing catalytic converter.

Parts You'll Likely Need

  • Fuel Injector (OEM #12638530) — This is the most probable cause according to GM's own technical service bulletin for the P2099 code on this engine. It's a direct-injection injector.
    Trusted brands: ACDelco, GM Genuine Parts
    OEM price range: $80-$150
    Aftermarket price range: $50-$100
  • Downstream Oxygen Sensor (Bank 2, Sensor 2) (OEM #12667438) — This is the sensor that reports the rich condition. It can fail and send false readings, making it the second most common cause, though it is often replaced unnecessarily.
    Trusted brands: ACDelco, Denso, NTK, Bosch
    OEM price range: $80-$110
    Aftermarket price range: $40-$70

Related Codes That Often Appear With This One

  • P2097 — This is the identical 'too rich' code for Bank 1 (firewall side). If both appear, it strongly suggests a systemic problem like high fuel pressure or a faulty MAF sensor affecting the entire engine.
  • P0175 — This code means 'System Too Rich (Bank 2)' based on the *upstream* O2 sensor. It often appears with P2099 and reinforces that there is a definite rich condition on Bank 2, likely originating from a fuel delivery issue like a leaking injector.
  • P0300, P0302, P0304, P0306 — These are misfire codes. A severely leaking injector on Bank 2 (cylinders 2, 4, 6) can foul the spark plug, wash oil from the cylinder walls, and cause misfires on that bank.

Technical Service Bulletins (TSBs) & Recalls

  • PIP4964F: (Supersedes earlier versions like PIP4964C/D) Addresses Service Engine Soon lamp with DTC P2097 or P2099. Recommends an injector balance test or AFIT as a primary diagnostic step before checking for exhaust leaks or other causes. Covers a wide range of GM models with the 3.6L engine.

Platform-Specific Known Issues

  • TSB #PIP4964F: General Motors issued this bulletin for a wide range of vehicles, including the XT5, that exhibit a P2097 or P2099 code. It explicitly directs technicians to perform a fuel injector balance test (or AFIT) *before* proceeding with other diagnostics, indicating that faulty injectors are the most likely cause.

Mechanic-Grade Diagnostic Values

  • Upstream O2 Sensor (Bank 2, Sensor 1) Voltage — expected: Rapidly fluctuating between 0.1V and 0.9V at operating temperature.. Failure: Signal is static, slow to respond, or stuck at a specific voltage.
  • Downstream O2 Sensor (Bank 2, Sensor 2) Voltage — expected: Relatively stable voltage, typically between 0.6V and 0.8V, when cruising at operating temperature.. Failure: Voltage is stuck high (e.g., >0.8V), stuck low, or fluctuating rapidly like the upstream sensor.
  • Long Term Fuel Trim (Bank 2) — expected: Close to 0%, typically within +/- 10%.. Failure: Strongly negative value (e.g., -15% to -25%) as the ECM tries to compensate for the rich condition by removing fuel.

Scan Tool Commands That Help

  • GM GDS2 (or equivalent professional scan tool): Active Fuel Injector Tester (AFIT) / Injector Balance Test — This is the primary diagnostic step recommended by GM TSB #PIP4964F to identify a leaking or malfunctioning fuel injector, which is the most common cause of P2099 on this engine.
  • Advanced OBD-II Scan Tool: Reset Fuel Trim / Reset Adaptations — After replacing fuel injectors, this function should be used to clear the old learned values from the ECU. This forces the computer to relearn the fuel delivery strategy with the new components, preventing it from running rich or lean based on old data.

Wiring & Ground Locations

  • Bank 2 Fuel Injector Harness — Bank 2 is the cylinder bank closer to the radiator/front of the vehicle. The harness connects to the three fuel injectors on that bank's fuel rail.. A degraded or corroded wiring harness or connectors can cause intermittent injector performance, leading to misfires and a rich condition that triggers P2099. This can be misdiagnosed as a faulty injector itself.
  • O2 Sensor Heater Circuit Wires — On the O2 sensor's own pigtail connector.. As a general diagnostic tip, the two wires of the same color (often black) on the sensor side of the connector are for the heater circuit. Testing for resistance and power here can rule out a heater failure, which can cause slow sensor response and incorrect readings.

Real Owner Repair Stories

  • Carly Forum User (2017 Cadillac XT5) — Poor engine performance, high fuel consumption, stalling at idle, smoke during acceleration.
    ❌ Tried (didn't work) Initial diagnosis was uncertain due to a bad experience with a previous mechanic.
    ✅ What actually fixed it A faulty cable connection to the fuel injectors was causing a misfire. The repair of the wiring/connections resolved all symptoms and the code.
  • Automotive Technicians Discussion Forum (2010 GMC Acadia 3.6L (shared engine family)) — Code P2099 was present.
    ❌ Tried (didn't work) Not specified, but the final fix implies that simpler solutions may have been attempted first.
    ✅ What actually fixed it Replaced all fuel injectors and spark plugs.

"I Checked Everything" — The Actual Cause

  • The most common scenario for this code where a smoke test comes back clean is an internally leaking fuel injector. A smoke test is designed to find vacuum leaks (unmetered air entering the engine) or exhaust leaks, which typically cause lean codes. It cannot detect a fuel injector that is dripping excess fuel directly into the cylinder. This is why GM's TSB #PIP4964F bypasses initial leak tests and points directly to an injector balance test.

OEM Part Supersession History

  • 12638530 (Fuel Injector)12669384 — Standard part evolution for improved performance or manufacturing.
    Heads up: Part numbers 12611545 and 12632255 are also listed as interchangeable with 12638530. Always verify the latest part number with a dealer based on the vehicle's VIN.
  • 12667438 (Oxygen Sensor)N/A — This part number appears to be stable for the specified model years.
    Heads up: Some parts suppliers note that this sensor 'requires programming and/or special setup procedures.' While often plug-and-play, a fuel trim reset using a scan tool may be required for the ECU to recognize the new sensor correctly.

Model Year Variations Within This Range

  • 2020-2024: A mid-cycle refresh for the 2020 model year made the 2.0L Turbo (LSY) engine standard on Luxury and Premium Luxury trims. The 3.6L V6 (LGX) engine, to which this article applies, became optional on the Premium Luxury trim and standard only on the Sport trim. Therefore, a P2099 code on a 2020+ XT5 must first be identified as having the 3.6L V6.
  • 2017: A small number of early 2017 model year XT5s were part of NHTSA Campaign 16V641000 for improperly torqued fasteners on the high-pressure fuel pump or fuel rail, which could lead to a fuel leak and potentially trigger a rich condition code like P2099.
GM 3.6L DIRECT INJECTION TESTING (PART I) - RESISTANCE, CIRCUIT DESIGN, & SCOPE WAVEFORM CAPTURES
GM 3.6L DIRECT INJECTION TESTING (PART I) - RESISTANCE, CIRCUIT DESIGN, & SCOPE WAVEFORM CAPTURES
Gasoline Direct Injection: Scan Tool Injector Balance Test
Gasoline Direct Injection: Scan Tool Injector Balance Test
Causes and Fixes P2099 Code: Post Catalyst Fuel Trim System Too Rich (Bank 2)
Causes and Fixes P2099 Code: Post Catalyst Fuel Trim System Too Rich (Bank 2)
Wrenchy
Article researched & written by
Go-Parts' AI research assistant. Every article is backed by live web research, verified OEM data, and real technician knowledge — so you get accurate, up-to-date information you can trust.
Meet Wrenchy → Updated Apr 30, 2026

The information in this article is provided for general reference and educational purposes only. Vehicle specifications, procedures, and part compatibility can vary by production date, trim level, and region. Always consult your vehicle's factory service manual and verify part numbers before purchasing or performing repairs. Safety-critical components such as airbags, seat belts, and braking systems should be installed by a qualified professional.

Year Coverage
This article covers the OBD-II Code P2099 for:
  • Cadillac XT5: 20172018201920202021202220232024
In this article
🧭 Diagnostic Flowchart
Jump to ▴

Email This Guide

We'll send you a link to this article so you can read it later or share it.

Added to cart · Part