Incomplete image when TAdvChartView - SaveAllPanesToBitmap

Hi all
I work on a Delphi 12 application that retrieve candlestick data from Binance and output a chart as image on disk using TAdvChartView for drawing charts.
I have the following problem.
Very often the image is not "complete", its lines are fewer than expected.

CODE
// thread for saving chart
procedure TThreadChartSaving.Execute;
var tmpSTRING : String;
begin
try
LOG.WriteDatabaseLog(sectionTrading, eInformation, Format('Enter Saving Chart for %S (%S).', [internalCOIN.COIN_NAME, fSIDE]));
internalCOIN.SaveChartOnDisk(nil, internalCOIN.GetSaveChartFileName(fSIDE)); <-------
Sleep(2000); // wait ??? maybe the graphic was not finished
LOG.WriteDatabaseLog(sectionTrading, eInformation, Format('Exit Saving Chart for %S (%S).', [internalCOIN.COIN_NAME, fSIDE]));
internalCOIN := nil; // punem pe nil ca sa nu existe vreo referentiere
except
on e : Exception do begin
tmpSTRING := Format('Exception on %S.Execute!', [ClassName]);
LOG.WriteErrorLog(sectionChartSaving, tmpSTRING);
LOG.WriteErrorLog(sectionChartSaving, e.Message);
end;
end;
end;

// class that hold all information
procedure TCOIN.SaveChartOnDisk(mainCHART : TAdvChartView; const aFILENAME : String);
var workCHART : TAdvChartView;
begin
if not gOPTIONS.IS_SAVE_GRAPHICS then begin
LOG.WriteDatabaseLog(sectionGENERAL, eInformation, 'SaveChartOnDisk nu se va efectua deoarece IS_SAVE_GRAPHICS=False;');
Exit;
end;

try
if mainCHART = nil then begin
workCHART := CreateEmptyChart; <-----
infoLIVE_DATA.RenderChart(workCHART); <--------
end else begin
workCHART := mainCHART;
end;
SaveChartAsImageOnDisk(workCHART, aFILENAME); <-------
Sleep(100);
finally
if mainCHART = nil then begin
DestroyEmptyChart(workCHART);
end;
end;
end;

// class that hold live data informations received from binance
procedure TCOIN_LIVE_DATA.RenderChart(mainCHART: TAdvChartView);
begin
try
BeginRead; // protejam memoria la citire
vectorKLINE.RenderChart(mainCHART);
finally
EndRead;
end;
end;

// class that hold list of items TKlineList
procedure TKlineVector.RenderChart(mainCHART: TAdvChartView);
var i : Integer;
workLIST : TKlineList;
workPANE : TChartPane;
pHeight : Double;
begin
if internalList.Count = 0 then begin
Exit;
end;

try
pHeight := 100 / internalList.Count - 1; // Calculate height percentage for each pane
mainCHART.BeginUpdate;
SetupChart(mainCHART);
for i := 0 to internalList.Count - 1 do begin
workLIST := GetItemByIndex(i);
workPANE := GetChartPaneBy_kTYPEOF(mainCHART, workLIST.KLINE_TYPEOF, pHeight);
workLIST.RenderChart(workPANE);
end;
finally
mainCHART.EndUpdate;
end;
end;

// class that holds candlestick data
procedure TKlineList.RenderChart(mainPANE: TChartPane);
var i : Integer;
candleSerie : TChartSerie;
kDATA : TKline_Raw_Data;
kOUTPUT : TKline_Raw_Data;
begin
// se presupune ca anterior s-a facut begin update
try
kOUTPUT := TKline_Raw_Data.Create;
SetupPane(mainPANE, KLINE_TYPEOF); // face setup si sterge orice series exista anterior

candleSerie := CreateNewCandleSerieOnPane(mainPANE, KLINE_TYPEOF);  // se creaza o noua serie de tip candlestick
for i := 0 to Self.COUNT - 1 do begin
  kDATA := Self.GetKlineByIndex(i);
  AddKlineRawDataOnSerie(candleSerie, kDATA);
  kOUTPUT.Merge(kDATA);
end;
EnlargePaneToFitData(mainPANE, Self.COUNT - 1, kOUTPUT);

finally
FreeAndNil(kOUTPUT);
end;
end;

// create new series
function CreateNewCandleSerieOnPane(workPANE : TChartPane; const serieNAME : String) : TChartSerie;
begin
Result := workPANE.Series.Add;
Result.ClearPoints;
Result.Name := serieNAME;
Result.AutoRange := arEnabled;
Result.LineColor := clRed;
Result.LineWidth := 5;
Result.BorderColor := clBlack;
Result.WickColor := clBlack;
Result.WickWidth := 2;
Result.CandleColorIncrease := clGreen;
Result.CandleColorDecrease := clRed;
Result.ChartType := ctCandleStick;
Result.ShowValue := False;
end;

// create a new multipoint on the serie
procedure AddKlineRawDataOnSerie(workSerie : TChartSerie; kDATA : TKline_Raw_Data);
var xAxisValue : String;
begin
xAxisValue := FormatDateTime('hh:nn', kDATA.KLINE_TIME);
workSerie.AddMultiPoints(kDATA.HIGH, kDATA.LOW, kDATA.OPEN, kDATA.CLOSE, xAxisValue);
end;

// save all panes as an bmp image
procedure SaveChartAsImageOnDisk(mainCHART : TAdvChartView; const aFILENAME : String);
begin
mainCHART.SaveAllPanesToBitmap(aFILENAME, 800, 600);
end;

Images
Imgur
Imgur
Imgur

many tks.

Please put together a sample because the code alone is insufficient to try and reproduce the issue.