AD error kills WDWL ?(q2686h, 663c00_full_q2686h.dwl)

Hello dear colleagues!

I’m developing a car tracker “embedded application” which runs on a q2686h module.
The “embedded application” uses ADL API(OpenAT 4.21.01, firmware 663c00_full_q2686h.dwl ).
The app. sends device state to a data logging server via TCP socket/GPRS(WIP).
When the socket is not avaliable the app. saves the device states in A&D storage. To save the device states data I use a FIFO ring buffer(1 AD cell per saved state).
All adl_ad* functions are wraped in my functions to keep track of AD state(don’t subscribe if subscribed etc.).
adl_ad* wrappers stop me from writing, reading, getstating while format or recompact is running.
The problem:
Some times I get adl_adRead/Write errors. In such cases I format and recompact AD storage. Sometimes this format crashes and reboots the modem.
After this AT+WDWL command stops working.
It starts downloading dwl file to modem then stops in the middle of download.
DWLWIN to reinstall firmware and erase everything.
DWLWIN works, but there is no wpb version of 663c00_full_q2686h.dwl. I only have
663_09gg.Q2686H which dosn’t support WIP.
at+wdwl app.dwl stopes at 9%(complaning it can’t write data to flash).
at+wdwl 663c00_full_q2686h.dwl stopes at 3%(complaning it can’t write data to flash).

The modem has to be replaced by distributor which takes a MONTH(russia).

Have you seen anything like this. Any ideas how to revive WDWL?