If the garage door has an automatic reverse, it’s usually triggered by one among two things:
A sensor near the ground indicates that something is obstructing the door from closing without impacting the obstruction, or
A pressure sensor active during the closing of the door that’s in situ to stop crushing things (or people!) that the sensor didn’t catch.
In the case of the primary implementation, the door wouldn’t start to shut – as long as something is obstructing the sensor, the door will open completely and not plan to close.
In the case of the second implementation, the door begins closing and only automatically returns to open if it meets resistance before it’s completed the closing operation.
I’ve actually run into the questioner’s problem before, and therefore the root cause was that the garage door opener had a dial that would adjust the “closed” position of the door (i.e., how far the garage door opener had to visit close the door), and this dial’s setting had been changed. The results of the change (which put the “closed” position below the garage floor) were that the garage door opener would meet significant resistance (from the particular garage floor) before it had been expected (because the dial was incorrectly set), then would re-open the door to stay from causing damage. the answer was to regulate the dial on the garage door opener until it properly stopped at the extent of the garage floor, instead of trying to bury it below the ground.