Skanyx

Tesla BMS Error Codes: A Used Buyer's Decoding Guide

Skanyx Team10 min read

BMS_w015, BMS_a067, BMS_u029 and the rest. What each alert means on a used Model 3, S or Y. Range loss patterns and the four codes that mean walk away.

A 2020 Tesla Model 3 Long Range on coches.net shows 168,000 kilometres of mostly motorway use and a price 4,500 euros below the going rate. The seller in München explains the car is in "perfect condition" and that the BMS_w015 warning that appeared last winter was "just a software thing that went away". The dashboard is currently clean, the charge port works, the test drive feels normal.

The OBD2 scan you used on the last diesel will not help you here. Tesla does not follow the SAE J2012 P-code standard used on traditional cars. The BMS_w015 the seller mentioned is a Tesla-specific alphanumeric code that points to a high-voltage battery imbalance, and "went away" means the BMS managed to rebalance the cell groups well enough to suppress the warning, not that the underlying cause was fixed.

This guide decodes the BMS family of Tesla codes that matter most to a used buyer: what each one means, what range loss to expect, and the four specific codes that mean walk away regardless of asking price.

Quick Answer

Tesla BMS codes follow a proprietary BMS_[w|a|u][3 digits] format that standard OBD2 readers cannot decode; you need Scan My Tesla, TM-Spy, or Tesla service mode. The four codes that mean walk away on a used Model 3, Y or S are BMS_a066 (contactor weld), BMS_a081 (internal BMS fault), BMS_a194 (HV isolation failure), and any active BMS code combined with Supercharger throttling below 80 kW in the first five minutes of a fresh session. Pack repair on these starts at 3,500 EUR and runs to 18,000 EUR for a remanufactured pack.

What is the Tesla BMS code system?

The Tesla BMS code system is a proprietary alphanumeric scheme that Tesla uses internally to identify faults in the Battery Management System. Each code follows the format BMS_[letter][3-digit number], where the letter indicates severity: w is a warning (driver can continue but should act), a is an alert (vehicle behaviour will be affected), and u is a user-action-required code (charging, supercharging, or driving may be restricted). The system applies the same prefix logic to other subsystems: DI for drive inverter, PCS for power conversion, GTW for gateway, CP for charge port, UI for user interface.

A standard ELM327 Bluetooth adapter and a generic OBD2 app see almost none of this. The Tesla OBD2 port exposes basic CAN data (motor temperatures, charging status, some fault flags) but the BMS-internal codes only surface through Tesla's own service interface or third-party tools that have been reverse-engineered to read the Tesla CAN bus directly.

The implication for a used buyer: a clean dashboard on a Tesla does not guarantee a clean BMS log. The seller can clear an active warning by waking and sleeping the car a few times, but the historical event log in the BMS retains the warning history. A car with eight BMS_w015 events in the last six months is a different car from one with zero, even if both show clean dashboards on the day you view them.

The five BMS codes you will see most often on a used Tesla

These cover roughly 80 percent of BMS-family alerts on cars between 60,000 and 250,000 kilometres.

BMS_w015: High-voltage pack imbalance

The most common BMS warning on the used market. The Battery Management System has detected that one or more cell groups within the high-voltage pack are operating at a different voltage from the rest, beyond the threshold the BMS can correct through routine balancing.

Causes, in descending order of likelihood:

  • Car sat at low state of charge (below 20%) for extended periods (weeks)
  • Cold-weather driving for an extended period without a balance charge
  • Calibration drift in the BMS after a firmware update
  • A genuinely failing cell group within one of the 96-series modules (Model 3, Y) or 16-series modules (Model S, X older revisions)

The fix that usually works: charge to 100% and let the car sit at 100% for 12 to 24 hours so the BMS can perform a full balance cycle. The warning clears in roughly 70 percent of cases. When the warning returns within four weeks of a balance cycle, the cause is a failing cell group and the pack will eventually need replacement or module-level refurbishment.

BMS_a067: Battery capacity limit reached

The BMS has detected that the maximum measurable capacity has dropped below the threshold required for normal driving behaviour. Typically appears at 25 to 30 percent capacity loss from new, which on a Long Range Model 3 is roughly the 350,000 to 400,000 km mark. On a Model S 60 (which had less capacity headroom from new), it can appear as early as 200,000 km.

When you see BMS_a067 active, the car will limit acceleration, reduce regenerative braking strength, and cap the supercharging rate. The rated range at 100% will be visibly degraded compared to a healthy example of the same vintage.

The fix is a battery replacement. There is no software workaround that restores the underlying capacity.

BMS_u029: Battery rapid charge unavailable

The BMS has detected a condition that makes high-rate DC charging unsafe. Causes:

  • Battery temperature outside acceptable range (too cold or too hot)
  • Cell imbalance pattern that would worsen under high charge current
  • Contactor wear (precursor to BMS_a066)
  • Recent over-discharge event

BMS_u029 is the second-most-common code on used Teslas. When it appears intermittently in cold weather, the cause is usually temperature-related and the car returns to full Supercharger speed after preconditioning. When it appears in mild weather, the cause is structural and the pack is one of the contactor or imbalance failure modes.

BMS_a005: Battery cell imbalance, charge limit reduced

A more aggressive variant of BMS_w015. The BMS has detected that the imbalance cannot be safely corrected at higher state of charge levels and is limiting the maximum charge to 80% or 90% to protect cells.

A car displaying BMS_a005 has effectively lost 10 to 20% of its usable range, because the 100% mark is no longer accessible. The fix is the same as BMS_w015 but with a lower probability of success: balance cycle attempts work roughly 40 percent of the time on this code. The rest require module-level refurbishment.

BMS_u018: Battery temperature out of operating range

The pack temperature is outside the BMS's preferred operating window, restricting charge and discharge rates. Usually self-resolving after the car has been driven or has run battery preconditioning. When it persists for hours after the car has reached normal cabin temperature, the cause is the battery cooling system: failed coolant pump, blocked HV battery radiator, or seized chiller.

Cost to fix: 400 to 900 EUR for a coolant pump replacement, 600 to 1,300 EUR for a chiller replacement.

The four codes that mean walk away

These are not negotiation territory. They indicate structural failures or safety risks that exceed the rational economic value of the vehicle.

BMS_a066: Battery contactor weld detected

The high-voltage contactor is the relay that connects the pack to the rest of the car. Under normal operation it opens (disconnects) when the car powers down and closes (reconnects) when the car wakes. A welded contactor remains closed regardless of command, which means the car cannot fully isolate the HV system from the chassis in a crash. This is both a safety risk and a structural pack-level failure.

Repair: contactor replacement requires partial disassembly of the pack, typically 800 to 1,500 EUR for the contactor itself plus 600 to 1,200 EUR labour at a specialist. Tesla service centres usually quote a full pack swap (12,000 to 18,000 EUR), making this a walk-away decision on cars below the cost of a pack swap.

BMS_a081: BMS internal fault

The Battery Management System hardware itself has failed. The BMS is the brain that monitors all cells, manages charging, controls contactors, and reports state of health. A failed BMS cannot be repaired in isolation because it is embedded in the pack assembly. Replacement requires either a new pack or a pack open-and-rebuild that is usually only economical on Model S or X with high resale value.

Cost: 12,000 to 18,000 EUR for a remanufactured pack at independent specialists, 22,000 to 35,000 EUR for a Tesla service centre replacement.

BMS_a194: HV battery isolation failure

The high-voltage pack has developed an insulation leak to chassis ground. This is a safety-critical fault. The pack must be removed, the leak located, and the failed insulation repaired before the car can be safely driven. Repair specialists exist in Germany (specifically around Berlin and München for Tesla) and increasingly in Warsaw and Vilnius, but cost is typically 3,500 to 8,000 EUR.

For a used car still on its original pack, BMS_a194 often signals that the pack is near end of life regardless of the specific cell condition.

Active BMS code with Supercharger throttle below 80 kW

This is the most common scenario where a single number tells a more honest story than the seller. On a healthy Tesla Model 3 Long Range or Model Y Long Range on a 250 kW Supercharger, the car should sustain 150 to 200 kW for the first 10 to 15 minutes of the session, then taper. On a Model S Plaid or 100D, the car should hit 200 kW briefly before tapering.

If the car drops below 80 kW within the first five minutes of a fresh session, with no preconditioning issues and a battery temperature in the working range, the BMS is throttling to protect compromised cells. The throttle is the BMS's response to internal imbalance or cell-level resistance that has risen beyond normal. This pattern is almost always permanent.

How to run this test on a used Tesla you are about to buy: drive 30 minutes to warm the pack to operating temperature, locate a Supercharger that supports the car's peak rate, start a session at 30 to 40 percent state of charge, and watch the in-car charging speed graph for the first 10 minutes. A sustained throttle below the expected peak is a Walk Away.

Skanyx is a generic OBD2 app and does not decode Tesla's proprietary CAN bus. For BMS-internal data on a used Tesla, use Scan My Tesla, TM-Spy, or the Tesla service mode interface during the inspection. Skanyx covers the petrol and diesel cars in your household instead, including the 8-step Pre-Purchase Inspection on ICE vehicles. More on what Skanyx supports

How to read Tesla battery health without dealer access

Tesla does not expose a State of Health percentage in the consumer interface. Three indirect methods give a reliable picture.

1. Rated range at 100% charge

Drive the car (or have the seller drive it) to a 100% charge. Note the displayed rated range. Compare against the manufacturer baseline for the specific variant and year:

ModelVariantYearNew rated range (WLTP)Healthy at 100k kmHealthy at 200k km
Model 3Long Range RWD2019-2020580 km530-550 km480-510 km
Model 3Long Range AWD2019-2022580 km525-545 km470-500 km
Model 3Standard Range Plus2019-2020440 km405-425 km365-390 km
Model 3Standard Range (LFP)2021-2024491 km470-485 km440-465 km
Model YLong Range AWD2021-2024533 km490-510 km440-470 km
Model YPerformance2021-2024514 km470-490 km425-455 km
Model S75D2017-2019480 km425-450 km360-400 km
Model SLong Range / 100D2018-2022610 km545-570 km480-520 km
The bottom of each band is what an honest 200,000 km example shows. The top is a car that has been used mostly for short urban trips with frequent moderate-rate charging.

2. Tesla service mode capacity routine

Tesla service mode is accessible on every Tesla through a vehicle-specific key sequence. The interface includes a "Display Battery Capacity" routine that reports nominal full pack energy in kWh. Compare against the manufacturer baseline:

  • Model 3 Standard Range (LFP): 60 kWh nominal
  • Model 3 Long Range: 82 kWh nominal
  • Model Y Long Range: 82 kWh nominal
  • Model S 75D: 75 kWh nominal
  • Model S 100D / Long Range: 100 kWh nominal

The routine takes about 30 seconds. A pack reading 95 to 98 percent of nominal is healthy. Below 88 percent is a clear capacity loss that affects daily use.

3. Third-party apps (Scan My Tesla, TM-Spy)

Scan My Tesla (Android) and TM-Spy (iOS) read the Tesla CAN bus directly through a compatible Bluetooth adapter (Vgate iCar Pro 2S works for most cars). The apps report:

  • Nominal full pack energy
  • Per-cell voltage spread (the imbalance signature)
  • Battery temperature at each module
  • Charge cycle count
  • Pack revision and firmware version

Per-cell voltage spread above 30 mV at moderate state of charge is the imbalance signature that precedes BMS_w015. Cars with a spread above 60 mV are within months of either a balance cycle requirement or an actual cell failure.

Range degradation patterns by chemistry

The two main Tesla battery chemistries degrade differently. Knowing which you are looking at sets your range expectations.

NCA (Nickel Cobalt Aluminium): Model S, Model X, early Model 3 LR, Model Y Long Range

NCA packs degrade fastest in the first 30,000 km (a "calendar bedding-in" effect of 3 to 5 percent) then slow to roughly 0.7 to 1 percent per 10,000 km in steady-state operation. Total degradation at 200,000 km is typically 12 to 18 percent for moderate-use cars and 20 to 28 percent for high-supercharger fleet duty.

NCA packs respond better to deep-cycle balance routines than LFP, so a car that has lost 15 percent capacity may recover 2 to 4 percent after a full balance cycle.

LFP (Lithium Iron Phosphate): Standard Range Model 3 / Y RWD from 2021 onward

LFP packs degrade much more slowly: typically 5 to 8 percent at 200,000 km. The trade-off is that LFP packs are more sensitive to low-temperature charging and have lower energy density (which is why the rated range is lower for the same physical pack size).

LFP cars must be charged to 100% at least once a week for the BMS to maintain accurate calibration. A used LFP car that has been kept at 50% state of charge for months will show range loss that recovers after a single 100% balance charge.

Used Tesla market context by country

In Germany, mobile.de and autoscout24.de list around 4,000 to 6,000 Tesla examples at any time. Berlin has the largest concentration of Tesla service infrastructure outside the official Tesla service centres. Refurbishment specialists for module-level battery work cluster around the Munich and Hamburg metro areas.

In Poland, otomoto.pl and olx.pl list around 600 to 900 Teslas. Warsaw has two independent Tesla service workshops as of 2026. Module-level battery refurbishment is available but limited.

In Lithuania, autoplius.lt and autogidas.lt list around 100 to 200 Teslas, mostly imported from Germany. Vilnius has one Tesla-aware independent specialist. Battery refurbishment requires shipping to Germany or Poland.

In Spain, coches.net and autocasion.com list growing Tesla supply (around 800 to 1,200 examples). Hot-climate degradation is a measurable factor: a Tesla used primarily in Andalucía or Murcia tends to show 2 to 4 percent more capacity loss at equivalent mileage than the same car in northern Europe.

In the United Kingdom (RHD market), Tesla supply is thinner post-Brexit. Most used Teslas in the UK market are from the original UK delivery rather than imports.

How to use the findings at the negotiation table

Three negotiation paths.

If the BMS log shows historical BMS_w015 or BMS_a005 events that have since cleared after a balance cycle, the car is structurally healthy but has been managed somewhat aggressively. Ask for the most recent battery capacity reading from Tesla service mode and price-negotiate based on the actual rated range deficit (typical discount: 30 to 50 EUR per kilometre of range lost vs the original spec).

If the BMS log shows active or recent codes from the walk-away list (BMS_a066, BMS_a081, BMS_a194), walk away. The cost of repair exceeds the depreciation curve for any but the most expensive Tesla variants.

If the rated range at 100% charge is at the bottom of the healthy band for the mileage but no codes are active and the Supercharger throttle test passes, the car is honestly aged. Price-negotiate based on the range gap and complete the purchase.

What the OBD2 scan does not catch on a Tesla

Compared to a diesel buyer guide, the Tesla scan is mostly blind spots. A generic OBD2 app on a generic ELM327 adapter reads almost nothing meaningful on a Tesla because Tesla does not expose its data on the standard J1979 PIDs that generic readers query - everything battery, charger, inverter, and BMS lives on proprietary Tesla CAN traffic.

What you get from a generic OBD2 reader on a Tesla:

  • The presence or absence of a stored generic powertrain fault code (rare on Teslas; the BMS family of codes is not on the generic side)
  • A handful of basic vehicle-status flags that Tesla chose to expose on generic CAN

What needs a Tesla-aware tool, not generic OBD2:

  • Per-cell voltage data, cell-pair spread, individual module temperatures → Scan My Tesla (Android) or TM-Spy (iOS) via a compatible adapter
  • Drive inverter temperatures, motor RPM under load, charging session detail (current, voltage, target SOC) → Scan My Tesla / TM-Spy
  • BMS firmware-internal capacity baseline, nominal full pack energy → Tesla service mode (Settings → Service on the touchscreen) or a dealer scan
  • Historical BMS event log → Tesla service mode
  • Pack revision history → Tesla VIN decode service
  • Active BMS family codes (BMS_w015, BMS_a067 etc.) → Scan My Tesla / TM-Spy / Tesla service mode
  • Body integrity (true for any car, but particularly important on a Tesla because the structural design uses the pack as a stressed member)

A proper used Tesla evaluation skips the generic ELM327 entirely and goes straight to Scan My Tesla or TM-Spy, plus 10 minutes in Tesla service mode with the seller present. Most independent specialists in Germany and Poland charge 100 to 200 EUR for a full pre-purchase Tesla evaluation that includes both layers. On a 15,000 to 30,000 EUR purchase, this is rational insurance.

Make the BMS code review part of your standard Tesla buyer process

Five minutes of OBD2 scanning gives you the active code list. Ten minutes of service mode (with the seller present) gives you the battery capacity reading and the historical event log. A 30-minute test drive with a Supercharger session gives you the throttle behaviour. Combined, these three together rule out the most expensive surprises a used Tesla buyer can bring home.

If you remember one rule from this guide: the Supercharger throttle test is the most honest single check. A Tesla that cannot hold its expected peak charge rate on a 250 kW Supercharger after preconditioning has a problem the BMS is hiding from the dashboard. The throttle is the BMS protecting cells. The throttle does not lie even when the seller does.

Frequently Asked Questions

What is the difference between Tesla BMS codes and standard OBD2 codes?
Tesla uses an internal alphanumeric system that does not follow the SAE J2012 standard P-code format used on traditional OBD2 vehicles. Tesla codes begin with a subsystem prefix (BMS for battery management, DI for drive inverter, PCS for power conversion, GTW for gateway, CP for charge port, UI for user interface) followed by a single letter (w for warning, a for alert, u for user-action-required) and a three-digit number. Standard OBD2 readers cannot decode these; you need a Tesla-aware diagnostic tool (Scan My Tesla, TM-Spy on iOS, the Tesla service mode interface, or a dealer scan) to read them properly.
What does BMS_w015 mean on a Tesla?
BMS_w015 is a high-voltage battery imbalance warning. The Battery Management System has detected that one or more cell groups within the pack are operating at a different voltage from the rest, beyond the threshold the BMS can correct through normal balancing. On a used Tesla it most commonly means the car has been sitting at low state of charge for an extended period, or one cell group is genuinely failing. A balance cycle (charge to 100% and let it sit at that level for 12 to 24 hours) resolves the warning when the cause is calibration drift. When the warning returns within weeks of a balance cycle, the underlying cause is a failing cell group and the pack will eventually need replacement or module-level refurbishment.
How do I read Tesla battery health on a used Model 3?
Tesla does not expose a State of Health percentage in the consumer interface. Three indirect methods. First, the rated range value at 100% charge in the trip planner is the closest consumer-accessible proxy: a Long Range Model 3 RWD starts at 514 km WLTP and a healthy 100,000 km example shows around 470 to 490 km. Second, third-party apps (Scan My Tesla, TM-Spy) read the BMS firmware-internal nominal full pack energy and compare against the manufacturer baseline for the specific battery pack revision. Third, run the Tesla service mode 'Display Battery Capacity' routine, which is available in service mode and on some older firmware versions through the main UI's battery menu.
Which Tesla BMS codes mean I should walk away from the car?
Four codes carry a structural failure signal that puts the pack at the cliff edge. BMS_a066 indicates a battery contactor weld detected: the contactor is the high-voltage relay between the pack and the rest of the car, and a welded contactor means the car cannot fully isolate the HV system in a crash. Repair requires a contactor replacement, typically 800 to 1,500 EUR plus labour. BMS_a081 is an internal BMS fault that requires the battery management module to be replaced, usually only available with a pack replacement (12,000 to 18,000 EUR for a remanufactured pack at independent specialists). BMS_a194 is a high-voltage isolation failure: the pack is leaking insulation to chassis ground, which is both a safety risk and a regulatory failure on inspection. Any active BMS code combined with a Supercharger session that throttles to below 80 kW within five minutes is a fourth red flag indicating the BMS is restricting charge to protect compromised cells.
Can I check a Tesla battery with a generic OBD2 scanner?
No, not in any meaningful way. Tesla uses proprietary CAN messages that standard ELM327 adapters and generic OBD2 apps cannot decode. A generic scanner plugged into a Tesla shows little more than basic charging status, motor temperatures, and a handful of fault flags. None of the BMS-internal data (per-cell voltages, nominal full pack energy, capacity baseline, historical event log) is reachable. For a real used-Tesla evaluation you need Scan My Tesla (Android), TM-Spy (iOS), or the Tesla service mode interface. Budget around 100 to 200 EUR at an independent Tesla specialist for a pre-purchase scan that covers all three layers.

Skanyx Team

Automotive Diagnostics Experts

The Skanyx Team combines automotive expertise with cutting-edge AI technology to help car owners understand and maintain their vehicles better.