These instructions apply to the Mazda CX-30 Mk1 (DM) 2019-Present.
For other models, please choose your vehicle here.
If the sunroof on your Mazda CX-30 (DM, 2019–present) stops auto-closing, won’t tilt properly, or behaves oddly after a flat or disconnected battery, it needs re-initialising. The roof motor has lost its learned positions; re-teaching them takes under a minute with the roof switch. This is a normal, built-in relearn routine — not a fault and not something that needs a workshop — and every CX-30 owner can do it from the driver’s seat with nothing more than the overhead sunroof control.

Why It Happens
The sunroof controller stores its tilt, open and closed limits so the roof can run on a single touch and auto-reverse the moment it meets an obstruction. Those limits sit in volatile memory. When the 12 V battery goes flat, is disconnected for other work, or the roof fuse is pulled, that memory is wiped. The motor still turns, but it no longer knows exactly where fully closed or fully open sits, so the convenience features drop out until you re-teach them.
What You Notice When It’s Lost Its Memory
The usual symptoms are one-touch operation no longer working (you have to hold the switch the whole way), the roof stopping short of fully closed, or the auto-reverse anti-trap behaving unpredictably. None of that means the mechanism is broken — it simply means the controller needs to relearn its end stops, which is exactly what the routine below does.
First, a Few Checks
- Park the car and switch the ignition on so the sunroof circuit is live.
- Make sure the battery is in good health — a weak battery can abort the cycle part-way. If you’ve just jumped the car, let it run or charge first.
- Check the roof track and seal are clear of leaves, grit or ice that could stall the motor.
- Keep hands, hair and objects clear of the opening — the roof will move on its own during the relearn.
- Do it somewhere you don’t mind the roof opening fully, since the cycle runs the full travel.
How to Re-initialise the Sunroof
- Switch the ignition on.
- Make sure the sunroof and sunshade are closed.
- Press and hold the close (tilt-up) switch. The roof will move slightly — keep holding.
- The roof then runs through its full open/close cycle automatically; keep the switch held until it finishes.
- Release — the system is reset and one-touch works again.
If It Doesn’t Complete
- Don’t release early — if you let go before the full cycle ends the controller won’t store new limits, and you’ll have to start over. Hold the switch the whole way through.
- Clear any obstruction in the roof track and make sure the battery is healthy — a stall or a voltage dip mid-cycle both cause the relearn to fail.
- If the roof still won’t take the initialisation after a couple of attempts, switch the ignition off, wait a moment, then repeat from a fully closed start.
- Persistent failure with a good battery and a clear track points to a switch or motor fault worth having checked.
What to Expect Afterwards
Once the cycle finishes and you release the switch, one-touch open and close should be back, and the anti-trap auto-reverse should work again. Give it a quick test: a single tap should send the roof to its stored end position on its own. If it does, the limits are learned and you’re done.
Frequently Asked Questions
Why did my CX-30 sunroof stop auto-closing?
A battery disconnect or flat battery wiped its learned limits; re-initialise to restore one-touch and auto-reverse. The same thing can happen after the roof fuse is pulled or the battery is changed, so it’s worth relearning any time the car has lost 12 V power.
How do I reset the Mazda CX-30 sunroof?
With the roof and sunshade closed and the ignition on, hold the close switch and let the roof run through its full open/close cycle, then release. Holding the switch for the entire cycle is what tells the controller to store fresh end positions.
Is it safe to do myself?
Yes — it’s a factory relearn function that uses only the sunroof switch. Keep hands, hair and any objects clear of the roof opening while it cycles, since the panel moves on its own and the anti-trap protection is temporarily inactive during the relearn.
Do I need a tool?
No — it’s done entirely with the sunroof switch. There’s no diagnostic tool, menu or workshop visit involved, which is why it’s a quick job you can do on the driveway in under a minute.
Will I have to do this every time I change the battery?
Often, yes. Any event that cuts 12 V power — a battery swap, a long disconnect, or a flat battery — can clear the stored limits, so make the sunroof relearn part of your after-battery checklist alongside re-teaching the windows.
The roof still won’t one-touch after relearning — now what?
Confirm you held the switch through the complete cycle from a fully closed start, that the track is clear, and that the battery is strong. If it still won’t hold the initialisation, the switch, motor or wiring may need inspecting.
Re-initialised the sunroof after a battery change? Re-teach the windows too — see our CX-30 window guide. For warning lights, look up the code on autodtcs.com.
Independent guide — not affiliated with Mazda. Always follow your official service manual and safety precautions. Read our full disclaimer.