Had exactly this scenario last winter with my garden office setup. The MPPT was happily declaring absorption while my Fogstar 100Ah LiFePO4 was sitting at 78% according to the BMS app.
The culprit in my case was incorrect battery voltage parameters. The 100/30 was programmed with settings more appropriate for AGM — absorption voltage set to 14.4V, which the LiFePO4 technically "reaches" fairly quickly under light load, so the controller assumes the battery is fuller than it actually is. The MPPT sees target voltage achieved, transitions to absorption, counts down the timer, then drops to float. Battery never gets a proper charge.
A few things worth checking:
- What battery chemistry are you running? LiFePO4 wants absorption around 14.2–14.6V and a very short absorption time (or tail-current termination if supported)
- Cable sizing and connections — voltage drop means the controller thinks it's at absorption voltage while the battery terminals are actually lower
- Battery temperature — cold batteries accept charge slower and some BMSs will throttle current
- BMS communication — if you're running a Victron-compatible BMS via VE.Can or similar, check whether it's actually sending charge parameters or sitting silent
Connect via VictronConnect and pull up the history tab. Look at the absorption time and whether it's cutting short. Also worth checking the actual battery terminal voltage with a multimeter during what the MPPT thinks is absorption — that'll quickly tell you if there's a wiring issue.
What battery type are you running and what are your current charge profile settings? That'll narrow it down considerably.