Li-Po battery WARNING!

I dont know if there is a convention for polarity order on JST plug, but most Li-Po batteries you can purchase on-line have it reversed in comparison to the plug on the Arduino board. I came across this post Power an Arduino MKR ZERO by batteries and had the same experience with similar battery I purchased. In-built battery protection circuit stops battery from charging and because of reversed polarity Arduino protection stops it from powering the board.

What is misleading is that charging LED shows charging when there is none. So if you have trouble with the battery, make sure you double check Arduino board pinout as to where goes the + and the -. If your JST reversed, you can carefully lift up plastic hooks that hold in place JST terminals on the battery and pull out the terminals, swap around and reinsert.

After I did this the battery started charging (you can check it by printing analogRead(ADC_BATTERY)) in a loop, and after unplugging the power, board continued to run on battery power.

Actually, my case was some error with my battery charger so the battery was damaged.
Arduino can charge my battery and use the battery as the power supply when disconnected from the PC, but please ignore the CHRG light as it is always misleading. The charging speed of an Arduino is much slower than the battery charger, so you will need to wait for a while (such as 30 minutes) before it can work.
It was interesting that when the Arduino MKR was powered by the battery, its power LED was on but it was not as bright as that when powered by the USB, so I assumed it was not working when I sent my post.

Charging cycle by Arduino is 4 hours, it says so in documentation. The LED could be completely switched off, dont remember exactly, think by powering down USB completely, there is a thread somewhere.