I have threee Borom SoMs ( B402) and three eval boards. Two are V 1.1 & one is V1.0.
All three give the same error when publishing “vitals” 

I have verified the jumpers are in place.
I am not ultilizing the fuel gauge within code, just a vitals publish:
Particle.publishVitals();
Any ideas are appreciated
Stew
It’s possible that PMIC detection is not enabled on your B Series SoM.
You may need to enable SystemPowerFeature::PMIC_DETECTION as the B Series SoM will not have a PMIC and Fuel Gauge unless one is on the base board. The eval board does have them, but unless the feature is enabled, Device OS won’t search for them at boot.
Rick
Added that to setup, no change to result
Stew
Also ran a code snipet for fuel gauge only and publish , both SoC and voltage returned -1
Rolled OS back to 2.2.0 and it worked
Tried every OS version back to up to 4.0.0 alfa.1 and it worked.
4.0.0 alfa.2 it broke
back to 4.0.0 alfa.1 and all good
This is still haunting me. After a few code updates the fuel gauge returns -1 & PMIC systems calls for System.powerSource() & System.batteryState() return nil
Still having issues with Boron BSom and eval board.
after rickkas7 suggestion to add SystemPowerFeature::PMIC_DETECTION; in set up
neither System.batteryState() nor System.powerSource() work.

Getting the same results myself with Device OS 4.0.0
Which OS are you on?
Im on 4.0.0 curently. Ive had to use USB restore on all devices and flash Tinker @ 4.0.0 first, then my firmware. " usually" works but i did have one device that randomly stopped report charge state & SoC. Repeated above steps and its back on track ( for how long I dont know ).