P0123: Throttle Position Sensor High Input
P0123 Code: TPS Circuit High Input Causes. See symptoms, common causes, driving risk and checks that help confirm the fault before parts are replaced.

Save all codes and freeze-frame data. The code tells you what the control module detected, not which component must be replaced.
Quick answer
OBD2 code P0123 means the engine control module (ECM) has detected a voltage signal from the throttle position sensor (TPS) that is higher than expected. In most cases, this indicates the TPS is reporting throttle opening beyond its normal range (typically above 4.5-5 volts), triggering a fault. The ECM uses this input to adjust fuel delivery and ignition timing, so a high signal can disrupt engine performance.
What the P0123 Code Means: TPS Circuit High Input Explained
How the Throttle Position Sensor Works
The TPS is a potentiometer mounted on the throttle body that measures the angle of the throttle plate. As the throttle opens, the sensor's resistance changes, altering the voltage signal sent to the ECM; usually between 0.5V (closed throttle) and 4.5V (wide-open throttle). A 5-volt reference signal is supplied by the ECM, and the TPS returns a variable voltage based on throttle position.
Why the ECM Sets P0123
The ECM sets the P0123 code when the TPS signal voltage exceeds the maximum expected value for more than a few seconds. This commonly happens when the sensor's internal circuitry degrades, causing it to output a voltage above 4.5V even at idle. The ECM interprets this as an impossible throttle position (e.g., 110% open), which conflicts with other sensors like the MAP or MAF, leading to the fault. In some vehicles, a short to the 5-volt reference wire or a faulty ground can also force the signal high.
Common Scenarios Triggering P0123
In most cases, P0123 is caused by a failing TPS that's internally shorted or worn, producing a falsely high voltage. Less often, damaged wiring; such as a chafed 5-volt reference wire touching the signal wire; can send excessive voltage to the ECM. Corrosion or loose connections in the TPS harness can also create intermittent high signals. Rarely, a problem with the ECM's internal voltage regulator may supply excessive reference voltage, though this usually triggers multiple codes.
ECM Logic and Confirmation
Before setting P0123, the ECM typically checks the TPS signal against plausible conditions. For example, if the TPS reports 100% throttle at idle, but the MAF shows low airflow and the engine is running at 700 RPM, the inconsistency confirms a sensor or circuit fault. Some vehicles require the high signal to persist for a set duration (e.g., 2-3 seconds) or occur in multiple drive cycles before the code is stored and the check engine light illuminates.
Symptoms of P0123
Symptoms often include a check engine light, poor acceleration, or erratic idle as the ECM receives incorrect throttle data. In some cases, the vehicle may enter a "limp mode" to prevent damage from over-fueling. Hesitation during throttle application is common, as the ECM struggles to reconcile the TPS input with other sensor readings.
How to Diagnose P0123
Diagnosis starts with inspecting the TPS wiring and connectors for damage or corrosion. A scan tool can display live TPS voltage, which should smoothly increase from ~0.5V at idle to ~4.5V at wide-open throttle. If the voltage is pegged high or jumps erratically, the TPS is likely faulty. Repairs typically range from $150 to $1,000+ depending on the cause; see the full P0123 repair cost guide for a detailed breakdown.
Can You Still Drive With Code P0123?
Driving with P0123 is usually possible but not recommended long-term. The vehicle may run poorly, with reduced power or unpredictable acceleration, increasing the risk of stalling or sudden surges. If limp mode activates, driving should be limited to a repair shop to avoid potential damage.
Details that improve the diagnosis
Compare the reported value with engine temperature, barometric pressure, throttle position and related sensors. A signal that is electrically valid can still be implausible. Fuel trims at idle and at a steady higher speed help separate an intake leak from a fuel-delivery or measurement problem.
Before clearing anything, record whether the code is current, pending, history or permanent. Save companion codes and freeze-frame conditions, then note recent repairs, a weak battery, weather changes and the exact moment the symptom appears. After a confirmed repair, clear only the erasable codes and complete the appropriate drive cycle. A permanent code normally clears only after the onboard monitor verifies that the fault is gone.
Related trouble codes
Information to record before any repair
Write down the exact code, its status and every companion code reported by a complete vehicle scan. Save the freeze-frame values, including engine speed, load, coolant temperature, vehicle speed, battery voltage and fuel trims when available. Note whether the warning appeared during a cold start, at idle, under acceleration, after refueling, in wet weather or immediately after other work. These details help separate an intermittent electrical problem from a repeatable mechanical or operating-condition fault.
Identify the exact year, make, model, engine, transmission and market version before using a wiring diagram or specification. Connector pinouts, monitor thresholds, component locations and test procedures can change within the same model line. Check current manufacturer service information and relevant technical service bulletins. A bulletin can improve the test sequence, but it should not be treated as proof that the same fault exists on every vehicle.
How to verify the repair
A warning light that stays off immediately after codes are cleared does not by itself confirm a repair. Recheck live data, repeat the operating condition that originally set the code when it is safe to do so, and confirm that no pending code returns. Some monitors need a specific drive cycle before they run. Permanent codes are normally removed by the control module only after it sees enough successful monitor results. If symptoms remain or the code returns, continue testing instead of replacing another part by guesswork.