HomeTrouble CodesU0339

U0339 — Software Incompatibility Body Control Module B

Generic OBD-II · all makesNetwork / communication

Code U0339 indicates that one or more modules on the vehicle's network have detected a software version incompatibility with Body Control Module B. This typically occurs after a module has been replaced, reprogrammed, or updated and the configuration does not match what other modules expect. It is a software/configuration mismatch code, not a traditional mechanical or electrical failure code.

Symptoms

What causes it — most likely first

1. Module replaced without proper programming

A replacement Body Control Module B was installed but not configured or programmed to match the vehicle's existing module network, causing other modules to flag a software mismatch.

2. Incomplete or interrupted software update

A firmware update to the BCM or a related module was started but did not complete successfully, leaving mismatched or corrupted software versions on the network.

3. Used or incorrect configuration module installed

A salvaged or incorrect part-number module was installed that carries software from a different vehicle trim, region, or model year, making it incompatible with the rest of the network.

4. CAN bus communication fault

A wiring, connector, or network gateway issue is preventing modules from exchanging version data correctly, which can be misinterpreted as a software incompatibility.

5. Low battery voltage during module initialization

Insufficient system voltage during a programming event or key-on module boot caused incomplete data exchange, leaving a transient or persistent version mismatch code.

6. PCM/ECM software incompatibility

In rare cases, the engine control module's software version is incompatible with the BCM after an update or replacement, triggering the code. This is uncommon and should only be considered after all BCM-side and network causes are ruled out.

How it's diagnosed

  1. Record all stored codes, especially other U-codes, and note freeze frame data to understand whether the issue appeared after a repair or on its own.
  2. Verify whether any module was recently replaced, reprogrammed, or updated; if so, confirm the correct part number and software version were installed for this specific VIN.
  3. Perform a network/CAN bus integrity check including voltage and resistance at the diagnostic connector to rule out communication faults before assuming a software problem.
  4. Check battery state of charge and charging system output; correct any voltage issues before attempting reprogramming or further diagnosis.
  5. Use a professional-grade diagnostic tool to read software version data from all networked modules and compare against known-good or factory configuration for the VIN.
  6. If a genuine software mismatch is confirmed, reprogram or configure the affected module using the vehicle manufacturer's approved programming procedure and tooling.

Code facts & related codes

SystemNetwork / communication
StandardizationSAE generic — identical on every make

Frequently asked

Can I drive with code U0339 stored?

In many cases the vehicle will still run and drive, but body control features such as lighting, locks, or wipers may be partially or fully inoperative. It is best to diagnose and correct the issue promptly to avoid being stranded or losing safety-related functions.

Does U0339 mean the body control module is broken?

Not usually. The code most often indicates a software or configuration mismatch, not a hardware failure. The module may simply need to be properly programmed or configured to match the vehicle.

Will replacing the PCM fix this code?

Almost never. U0339 is a body control module software compatibility code. Replacing the engine computer is rarely the correct fix and is typically an expensive misdiagnosis. The problem is usually on the BCM side or the network, not the PCM.

Can this code appear without any recent repairs?

Yes, though it is less common. A failing battery, corroded connector, or intermittent network fault can trigger a false or transient version-mismatch code even if no module was recently serviced.