OBD-II trouble code
U0304: Software Incompatibility With Gear Shift Control Module
The gear shift control module's calibration does not match the rest of the vehicle. On a shift-by-wire car there is no cable between the lever and the gearbox, so this is the one code in the family with a parking and roll-away dimension — and the one that can stop the vehicle being towed conventionally.
Quick facts
- System
- Network
- Category
- Network Communication
- Severity
- Medium severity
- Drivable
- Usually safe to drive short-term
- Repair cost range
- $100 – $700
- DIY difficulty
- Shop recommended
What does U0304 mean?
The gear shift control module is the controller behind an electronic gear selector. On these vehicles the lever, dial or set of buttons is not connected to the transmission by anything mechanical — it is a sensor. It reports the driver's request, and this module interprets that request, checks it against vehicle speed, brake position and the rest of the network, and commands the transmission accordingly. This code stores when the network decides that module's software is not part of the coordinated set the vehicle expects.
The reason this code deserves more caution than its siblings is what sits at the end of that chain: Park.
On a cable-shifted car, selecting Park pulls a mechanical linkage that engages the parking pawl, and no software is involved. On a shift-by-wire car, Park is a request that the module has to interpret, confirm and hold. Some designs engage the pawl with an electric actuator. Many apply Park automatically when the driver's door opens or the ignition is switched off, precisely because there is no mechanical guarantee. A module running software that does not match the rest of the vehicle is a module whose handling of that sequence cannot be assumed correct — and the failure directions are asymmetric. Being unable to shift out of Park is inconvenient. Believing Park is engaged when it is not is a roll-away, which is why this area of vehicle design has attracted safety recalls and driver-behaviour warnings across several manufacturers.
The practical instruction that follows is simple and worth giving to the owner directly: until the software is corrected, apply the electric or mechanical parking brake every time the vehicle is left, and do not rely on the selector display alone. Chock the wheels on a slope. This costs nothing and removes the only genuinely dangerous outcome of the fault.
The second consequence is one that catches out recovery operators. Towing a vehicle with its driven wheels on the ground requires the transmission to be in Neutral, and on a shift-by-wire vehicle Neutral is a software state. If the module will not honour the request, the vehicle cannot be towed on its wheels at all and needs flatbed recovery. Most manufacturers provide a manual release — a lever under a trim panel, or a procedure with the ignition on and the brake applied — but it varies enormously and is worth looking up before the truck arrives rather than after.
The third is that these modules learn. A shift-by-wire selector reports positions that have to be calibrated against what the module considers each detent to be, so replacing or reflashing the module usually requires a selector position relearn afterward. Skipping it leaves a vehicle that has the right software and still selects the wrong gear or refuses a request. Confirm the relearn was performed before concluding a repair failed.
The causes themselves are the usual service-history ones — a module replaced without VIN-specific programming, a used unit carrying another vehicle's data, an update applied to the transmission controller and not to this module, or a reflash interrupted or performed with the wrong file.
Common causes
- Gear shift control module replaced without VIN-specific programming
- Selector position relearn not performed after module replacement or reflash
- Used module fitted from another vehicle and never reprogrammed
- Transmission controller updated while the shift control module was left on its previous calibration
- Reflash interrupted by a voltage drop, leaving the module partly programmed
- Programming performed with a file for a different transmission or market variant
- Module replaced after water ingress at the console without the programming step being completed
- Aftermarket or unapproved software applied to the transmission or shift control system
Symptoms
- Warning light with this code stored, often beside other network software codes
- Refusal to shift out of Park, or a long delay before a request is honoured
- Selector display disagreeing with the gear actually engaged
- Gear selection ignored or a request accepted only after several attempts
- Park applied automatically at unexpected moments
- Inability to select Neutral, which prevents conventional towing
- Transmission running in a limited or default strategy
- Fault present since console, selector or module work
Diagnostic steps
- 1.Before diagnosis, tell the owner to apply the parking brake every time the vehicle is parked and not to rely on the selector display, since Park on a shift-by-wire vehicle is a software state rather than a mechanical certainty.
- 2.Establish the service history. This code follows module replacement, an update or a reflash in almost every case.
- 3.Read the gear shift control module's software and calibration part numbers and compare them against the approved set for the VIN.
- 4.Check whether a selector position relearn was carried out after any previous module work. Correct software with an uncalibrated selector still misbehaves.
- 5.Look up the manufacturer's manual transmission release procedure before arranging recovery, because a vehicle that cannot select Neutral cannot be towed on its wheels.
- 6.Note any companion network or transmission codes that help confirm which module is the mismatched one.
- 7.Confirm a stable programming supply before reflashing, since an interrupted flash is itself one of the causes on this list.
- 8.Reprogram the module to the matching approved calibration, then perform the selector position relearn.
- 9.Verify every selector position is recognised correctly, including Park engagement and release, on a level surface with the parking brake applied.
- 10.Road test and confirm the code does not return after a full key cycle before releasing the vehicle.
Repair cost
$100 – $700
This is a programming repair rather than a parts repair. Reprogramming the gear shift control module is typically $150 to $400, and $400 to $700 where the calibration is dealer-only or several modules must be aligned together. Budget for the selector position relearn as part of the job, since the software alone does not finish it. Where the vehicle cannot select Neutral, add flatbed recovery at $100 to $300 rather than attempting a conventional tow. If a used module was fitted, the earlier repair is the real expense and this code is only the symptom of it.
Estimate your repair
Run the numbers for your vehicle
Open the Repair Cost Estimator with pcm replacement preselected. Adjust labor rate and vehicle category to fit your situation.
DIY vs shop
Leave this one to a qualified shop. It typically involves emissions-critical components, refrigerant handling, or other work that requires manufacturer-grade tooling, training, or certification. DIY attempts often produce a more expensive problem than the original code.