Problema Soft WDT reset em uma lista json

QUando faço meu json uma lista até 9 posiçoes ele me mostra certinho
o json com 9 posições. A partir que coloco 10 ou mais da WDT reset.
Antes usava server.arg("plain") e funcionava bem com lista json grande mas agora alterei para Asyncrono

O codigo é assim

 server.on("/gravarAgendamento", HTTP_POST,[](AsyncWebServerRequest *request){}, NULL,
        [](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) {


            


      jsonBuffer.reserve(8192);  // Ajuste para o tamanho máximo esperado

      if (index == 0) {
          jsonBuffer.clear();  // Limpa buffer ao começar novo JSON
          jsonBuffer.reserve(total);  // Reserva memória
          Serial.printf("🔄 Iniciando recebimento de JSON (%d bytes)\n", total);

      }

      if (jsonBuffer.capacity() < jsonBuffer.size() + len) {
          Serial.println("⚠️ JSON grande demais! Abortando...");
          request->send(413, "application/json", "{\"erro\": \"JSON muito grande\"}");
          return;
      }
         
      jsonBuffer.reserve(jsonBuffer.size() + len);  // Reserva espaço antecipadamente
      Serial.println(ESP.getFreeHeap());  // Exibe a memória livre

      size_t chunkSize = 100;  // Tamanho do chunk
       //ESP.wdtDisable();
      for (size_t i = 0; i < len; i += chunkSize) {
          size_t remaining = len - i;
          size_t size = (remaining < chunkSize) ? remaining : chunkSize;
          jsonBuffer.insert(jsonBuffer.end(), data + i, data + i + size);
          delay(0);  // Permite que o sistema processe outras tarefas
      }

      Serial.printf("Recebido (%d/%d bytes)\n", index + len, total);    

      // Se terminou de receber todo o JSON, processa os dados
      if (index + len == total) {
          Serial.println("📩 JSON Completo Recebido:");
          jsonBuffer.push_back('\0');  // Garante finalização da string
          

          // Criar um documento JSON dinâmico
          DynamicJsonDocument doc(8192);  // Aumente se necessário
          DeserializationError error = deserializeJson(doc,jsonBuffer.data());

          if (error) {
              Serial.print("❌ Erro ao parsear JSON: ");
              Serial.println(error.c_str());
              request->send(400, "application/json", "{\"erro\": \"JSON inválido\"}");
              return;
          }

          // Verifica se o JSON recebido é um array
          if (doc.is<JsonArray>()) {
              Serial.println("📌 JSON recebido é um ARRAY!");
              JsonArray array = doc.as<JsonArray>();
              
              // Percorrer e exibir cada item da lista JSON
              Serial.println("🔽 Lista JSON recebida:");
              for (JsonVariant item : array) {
                  serializeJson(item, Serial);
                  Serial.println();
              }
          }
          // Se for um objeto normal, imprime diretamente
          else if (doc.is<JsonObject>()) {
              Serial.println("📌 JSON recebido é um OBJETO!");
              serializeJson(doc, Serial);
              Serial.println();
          }

          Serial.println("📌 JSON Processado com Sucesso!");
          // Retornasucesso para o cliente
          request->send(200, "application/json", "{\"status\": \"ok\"}");
      }

   
      
});

A lista que funciona até 9 posições se você verem é uma lista grande
18:03:03.055 -> {"key":1,"id":"12930","codUser":12,"codbomba":1,"dosagem":55.55555556,"hora":"13:00","diasemana":"Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday","flag":0,"bombaativa":"on","calibracao":"50"}

18:03:03.255 -> {"key":2,"id":"12931","codUser":12,"codbomba":1,"dosagem":55.55555556,"hora":"13:06","diasemana":"Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday","flag":0,"bombaativa":"on","calibracao":"50"}

18:03:03.489 -> {"key":3,"id":"12932","codUser":12,"codbomba":1,"dosagem":55.55555556,"hora":"13:09","diasemana":"Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday","flag":0,"bombaativa":"on","calibracao":"50"}

18:03:03.689 -> {"key":4,"id":"12933","codUser":12,"codbomba":1,"dosagem":55.55555556,"hora":"13:12","diasemana":"Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday","flag":0,"bombaativa":"on","calibracao":"50"}

18:03:03.889 -> {"key":5,"id":"12934","codUser":12,"codbomba":1,"dosagem":55.55555556,"hora":"13:15","diasemana":"Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday","flag":0,"bombaativa":"on","calibracao":"50"}

18:03:04.122 -> {"key":6,"id":"12935","codUser":12,"codbomba":1,"dosagem":55.55555556,"hora":"13:18","diasemana":"Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday","flag":0,"bombaativa":"on","calibracao":"50"}

18:03:04.322 -> {"key":7,"id":"12936","codUser":12,"codbomba":1,"dosagem":55.55555556,"hora":"13:21","diasemana":"Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday","flag":0,"bombaativa":"on","calibracao":"50"}

18:03:04.553 -> {"key":8,"id":"12937","codUser":12,"codbomba":1,"dosagem":55.55555556,"hora":"13:24","diasemana":"Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday","flag":0,"bombaativa":"on","calibracao":"50"}

18:03:04.789 -> {"key":9,"id":"12938","codUser":12,"codbomba":1,"dosagem":55.55555556,"hora":"13:27","diasemana":"Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday","flag":0,"bombaativa":"on","calibracao":"50"}

Boa noite.
Então, o WDT é acionado quando o processamento ultrapassa os 8.3 segundo. Possivelmente a 10 posição do JSON esteja acima de limite.
Uma saída simples e prática seria atualizar o chamada do WDT no inicio do JSON. Caso ainda continue ocorrendo timerout, desconsidere a nova chamada do WDT no inicio e mude a camada do WDT para o final de cada FOR. Isso irá atualizar o timerout do WDT e terá 8.3 para processar casa ciclo do FOR.

Dica: Habilite, caso não tenha habilitado, a data e hora no serial monitor. Depois, coloque pontos de verificação em vários pontos do código e verifique o tempo que será marcado entre cada ponto de verificação com Serial.println("verificacao A"), verificacao B, etc... Seria ideia colocar um ponto antes e um depois do processamento do JSON ou antes de depois em cada FOR.

Assim, saberá quanto tempo de processamento cada bloco.