A sunroof that will not open, close, or tilt is one of three things: no power (fuse or switch), motor failure, or a broken cable inside the tray. Here is how to tell them apart and what the fix costs.
Tell us your year/make/model and what you’re seeing. Our AI gives you the most likely cause for free in under 30 seconds.
Start Free Diagnosis →No login. No scanner needed.
The two plastic shoes that ride in the side rails crack or the steel cable that drives them frays. You hear the motor running but the glass moves crooked or not at all. Replacing the cables requires dropping the headliner. Cost: $400 - $1500. DIY: Hard. Severity: Medium.
Get a Free AI Diagnosis →You press the switch and hear nothing - no whirring or clicking. The motor at the front of the tray is dead. Sometimes it just needs initialization after a battery disconnect. Cost: $300 - $700. DIY: Hard. Severity: Medium.
Get a Free AI Diagnosis →Sunroof shares a circuit with other accessories on some cars. A blown fuse kills it instantly. Check the "MOON" or "SUNROOF" fuse in the under-dash or under-hood panel. Cost: $2 - $10. DIY: Easy. Severity: Low.
Get a Free AI Diagnosis →The headliner-mounted rocker or rotary switch wears out from heat and use. The motor is fine but never gets the signal. Swap-test by trying the express-close or tilt feature - if one direction works and not another, the switch is suspect. Cost: $50 - $200. DIY: Medium. Severity: Low.
Get a Free AI Diagnosis →After a dead battery or motor change, the controller forgets endpoints and refuses to move. Reinitialize by holding the "close and tilt up" position for 10-30 seconds (varies by make). Cost: $0. DIY: Easy. Severity: Low.
Get a Free AI Diagnosis →Work through these in order. Stop as soon as you find the cause - you usually do not need all four.
Open the fuse box and find the "MOON," "SUNROOF," or "SR" fuse - usually 20-25A. Pull and inspect. Replace if blown. If it blows again immediately, the motor is shorted - stop and visit a shop.
Press and hold the close switch for 30 seconds even after the sunroof stops. Release. Try the open switch. This re-teaches the controller its endpoints on most makes (Toyota, Honda, GM). For German cars, see the owner's manual for the brand-specific reset.
With the headliner trim removed (or your ear pressed to the front of the sunroof opening), press the switch. A clicking relay with no whir = motor is dead. Whirring with no movement = cable or shoe broken. Silence = no signal getting to the motor.
Most cars have a manual override - a hex nut on the motor shaft or a torx fitting hidden behind the dome light cover. Slide the headliner trim aside, insert the correct tool from the toolkit, and crank until the sunroof closes. Always close it before driving home - never leave it open with no power.
If your scanner shows one of these B-codes (body) along with the symptom, run a free AI diagnosis to confirm.
🔬 Run a free AI diagnosis →Describe what your car is doing and our AI gives you the most likely cause for your year/make/model - free.
Get Free DiagnosisNo login. No scanner needed. Takes about 30 seconds.
If the motor whirs but the glass does not move, a cable or shoe is broken - use the manual override (a hex/torx fitting on the motor or under a trim cover) to crank it closed. If nothing happens, check the fuse first.
$200 - $500 for the part, $300 - $700 installed. Labor is the biggest cost because the headliner often has to come down.
The headliner has to be lowered, the entire sunroof tray removed, and the cables/shoes replaced as a kit. Most shops charge 3-5 hours of labor. Total runs $600 - $1500 depending on the make.
Yes on most cars. Remove the small cover near the dome light to find a hex or torx socket on the motor shaft. Use the included tool to crank the sunroof closed by hand.
Either lost calibration (try the 30-second hold reset) or the rear drive shoes are broken so the glass can only tilt at the front.
On cars under 10 years old, yes - a leak from a broken-open sunroof can total a headliner. On older cars, some owners just have the sunroof bonded closed by a body shop for $200.