I have found this answer after digging deep.
If the controller works by plugging it in, but as soon as it is disconnected it shows battery low or critical and then disconnects, this might help
Step 1: Make sure the controller is disconnected.
Step 2: The controller will still try to turn on and then proceed to turn off. Keep doing it till the battery is fully depleted. (will take an 30 mins). This is to recalibrate the internal circuitry measuring the battery level inside of the battery itself.
Step 3: Charge, Unplug, and Enjoy
Source: Tried it out a week ago and it worked.