Http request - after x amount of calls crashes n8n

Describe the issue/error/question

I have a workflow, where I use a http post request, which has pagination and gives me a json response with 15 objects. So after 20 or more requests n8n get really slow to the point it crashes.

If I understand correctly, n8n stores everything in memory. Any chance to get rid of the previous responses to keep it performant since I would like to run it over night an have xK of calls?

What is the error message (if any)?

Please share the workflow

Share the output returned by the last node

Information on your n8n setup

  • n8n version: 0.202.1
  • Database you’re using (default: SQLite): SQLite
  • Running n8n with the execution process [own(default), main]: default
  • Running n8n via [Docker, npm, n8n.cloud, desktop app]: npm

Hi @Kool_Baudrillard, I am sorry you are having trouble.

This does indeed sound like a memory problem.

Any chance to get rid of the previous responses to keep it performant since I would like to run it over night an have xK of calls?

Yes, that’s possible in most cases. If you do the heavy lifting in a sub-workflow and only return a single result item (something like { "success": true }) to the main workflow the memory consumed by the sub-workflow would become available again.

Check out Channel closed Error - #3 by MutedJam for a recent example and please do let me know if you have any questions on this.

2 Likes

Hi,

this sounds good, I´ll give it a try:

1.) Workflow iterate through pagination → hand over generated api call to 2nd workflow
2.) Process the api call, when done return success to 1st workflow

Is my assumption right?

1 Like

Yes, pretty much like that :slight_smile:

Hi I tried it,

but execute node doesn’t hand over data to the trigger node or gives an error I do not understand.

Could you check the execution log of your sub-workflow for the error cause? This should hopefully make it clear what went wrong in there.

TypeError: Cannot read properties of undefined (reading 'find')

This is what I tried to do.

Get the json body from the post request, process it all along to only have the id:

[

{

“jobs”:[

{

“referentie”:{

“id”:65609647,

“uuid”:“ef08e105-6421-4d8b-b4e2-e17f5f7cb7e6”

},

“gepubliceerd”:true,

“gesloten”:false,

“functie”:{

“naam”:“SAP BC Specialist”,

“omschrijving”:{

“html”:“

SAP en ERP zijn de systemen die Infrabel het vaakst gebruikt in zijn belangrijkste operationele processen (Maintenance, Logistics, HR…).

Binnen deze functie focus je je op drie domeinen nl. de monitoring van de systemen, de geplande taken en het beheer van incidenten.

  • Voor de monitoring houd je permanent toezicht op de goede prestaties van de SAP-systemen. Wanneer je een incident vaststelt op een van de systemen, neem je de nodige maatregelen om het incident zo spoedig mogelijk op te lossen. Je neemt zo nodig contact met collega’s van andere teams om de meest geschikte oplossing te vinden. Ten slotte documenteer je het incident om achteraf te kunnen nagaan welke acties werden ondernomen om het incident op te lossen.
  • Voor het beheer van de geplande taken ben je betrokken in verschillende projecten:
    • Je krijgt een aanvraag binnen via je tweedelijnscollega’s;
    • Je voert een analyse uit om te bepalen welke stappen moeten worden genomen om de aanvraag uit te voeren.
    • Je plant de datum waarop de gevraagde interventie wordt uitgevoerd in nauwe samenwerking met de andere getroffen teams.
    • Je voert indien nodig een testfase uit om na te gaan of het project zal slagen.
    • Je documenteert elke fase van je voorbereiding.
  • Voor de incidentenafhandeling ontvang je een alarmmelding van een incident via de monitoring of via een gebruiker van het systeem. Je pleegt overleg met je verantwoordelijke om het probleem zo snel mogelijk te kunnen oplossen. Indien nodig zorg je eerst voor een tijdelijke oplossing (workaround) en onderzoek je nadien het incident om een definitieve oplossing te vinden voor het probleem.
  • Je gaat steeds proactief te werk om ervoor te zorgen dat de SAP-systemen optimaal werken en de gebruikers kunnen rekenen op een transparante dienstverlening.
  • Je geeft regelmatig feedback over de voortgang van je activiteiten aan de projectleider en aan je hiërarchisch verantwoordelijke.
  • Gezien de aard van het werk worden bepaalde taken soms buiten het normale uurrooster uitgevoerd. Je neemt via een beurtrolsysteem dus ook deel aan de wachtdienst om ervoor te zorgen dat de systemen ‘s nachts en in de weekends steeds beschikbaar zijn.

De ontwikkeling-teams van Infrabel zijn vertrouwd met de methodologieën Agile en Scrum en passen ze pragmatisch toe.

”,

“plainText”:“SAP en ERP zijn de systemen die Infrabel het vaakst gebruikt in zijn belangrijkste operationele processen (Maintenance, Logistics, HR…). Binnen deze functie focus je je op drie domeinen nl. de monitoring van de systemen, de geplande taken en het beheer van incidenten. Voor de monitoring houd je permanent toezicht op de goede prestaties van de SAP-systemen. Wanneer je een incident vaststelt op een van de systemen, neem je de nodige maatregelen om het incident zo spoedig mogelijk op te lossen. Je neemt zo nodig contact met collega’s van andere teams om de meest geschikte oplossing te vinden. Ten slotte documenteer je het incident om achteraf te kunnen nagaan welke acties werden ondernomen om het incident op te lossen. Voor het beheer van de geplande taken ben je betrokken in verschillende projecten: Je krijgt een aanvraag binnen via je tweedelijnscollega’s; Je voert een analyse uit om te bepalen welke stappen moeten worden genomen om de aanvraag uit te voeren. Je plant de datum waarop de gevraagde interventie wordt uitgevoerd in nauwe samenwerking met de andere getroffen teams. Je voert indien nodig een testfase uit om na te gaan of het project zal slagen. Je documenteert elke fase van je voorbereiding. Voor de incidentenafhandeling ontvang je een alarmmelding van een incident via de monitoring of via een gebruiker van het systeem. Je pleegt overleg met je verantwoordelijke om het probleem zo snel mogelijk te kunnen oplossen. Indien nodig zorg je eerst voor een tijdelijke oplossing (workaround) en onderzoek je nadien het incident om een definitieve oplossing te vinden voor het probleem. Je gaat steeds proactief te werk om ervoor te zorgen dat de SAP-systemen optimaal werken en de gebruikers kunnen rekenen op een transparante dienstverlening. Je geeft regelmatig feedback over de voortgang van je activiteiten aan de projectleider en aan je hiërarchisch verantwoordelijke. Gezien de aard van het werk worden bepaalde taken soms buiten het normale uurrooster uitgevoerd. Je neemt via een beurtrolsysteem dus ook deel aan de wachtdienst om ervoor te zorgen dat de systemen ‘s nachts en in de weekends steeds beschikbaar zijn. De ontwikkeling-teams van Infrabel zijn vertrouwd met de methodologieën Agile en Scrum en passen ze pragmatisch toe.”,

“markdown”:“SAP en ERP zijn de systemen die Infrabel het vaakst gebruikt in zijn belangrijkste operationele processen (Maintenance, Logistics, HR…). Binnen deze functie focus je je op drie domeinen nl. de monitoring van de systemen, de geplande taken en het beheer van incidenten. * Voor de monitoring houd je permanent toezicht op de goede prestaties van de SAP-systemen. Wanneer je een incident vaststelt op een van de systemen, neem je de nodige maatregelen om het incident zo spoedig mogelijk op te lossen. Je neemt zo nodig contact met collega’s van andere teams om de meest geschikte oplossing te vinden. Ten slotte documenteer je het incident om achteraf te kunnen nagaan welke acties werden ondernomen om het incident op te lossen. * Voor het beheer van de geplande taken ben je betrokken in verschillende projecten: * Je krijgt een aanvraag binnen via je tweedelijnscollega’s; * Je voert een analyse uit om te bepalen welke stappen moeten worden genomen om de aanvraag uit te voeren. * Je plant de datum waarop de gevraagde interventie wordt uitgevoerd in nauwe samenwerking met de andere getroffen teams. * Je voert indien nodig een testfase uit om na te gaan of het project zal slagen. * Je documenteert elke fase van je voorbereiding. * Voor de incidentenafhandeling ontvang je een alarmmelding van een incident via de monitoring of via een gebruiker van het systeem. Je pleegt overleg met je verantwoordelijke om het probleem zo snel mogelijk te kunnen oplossen. Indien nodig zorg je eerst voor een tijdelijke oplossing (workaround) en onderzoek je nadien het incident om een definitieve oplossing te vinden voor het probleem. * Je gaat steeds proactief te werk om ervoor te zorgen dat de SAP-systemen optimaal werken en de gebruikers kunnen rekenen op een transparante dienstverlening. * Je geeft regelmatig feedback over de voortgang van je activiteiten aan de projectleider en aan je hiërarchisch verantwoordelijke. * Gezien de aard van het werk worden bepaalde taken soms buiten het normale uurrooster uitgevoerd. Je neemt via een beurtrolsysteem dus ook deel aan de wachtdienst om ervoor te zorgen dat de systemen ‘s nachts en in de weekends steeds beschikbaar zijn. De ontwikkeling-teams van Infrabel zijn vertrouwd met de methodologieën Agile en Scrum en passen ze pragmatisch toe.”

},

“arbeidscircuit”:{

“code”:“G”,

“label”:“Gewoon contract.”,

“kortLabel”:“Vaste Job”

},

“arbeidscircuitLijn”:“Vaste Job”

},

“opmaak”:{

“logo”:{

“url”:“https://cdn.vdab.be/vindeenjob/templates/bedrijven/3203/mobileLogo.png”,

“altText”:“Logo Infrabel”

},

“h1TekstKleur”:“#213a53”,

“h2TekstKleur”:“#213a53”,

“h3TekstKleur”:“#025da4”,

“linksTekstKleur”:“#000000”,

“bovenBalkTekstKleur”:“#ffffff”,

“bovenBalkAchtergrondKleur”:“#02bcf0”,

“onderBalkAchtergrondKleur”:“#02bcf0”,

“extraInformatieTekstKleur”:“#000000”,

“extraInformatieAchtergrondKleur”:“#ffffff”,

“bedrijfsInfoKnopTekstKleur”:“#ffffff”,

“bedrijfsInfoKnopAchtergrondKleur”:“#02bcf0”,

“sollicitatieKnopTekstKleur”:“#ffffff”,

“sollicitatieKnopAchtergrondKleur”:“#213a53”,

“hoofdingAchtergrondKleur”:“#ffffff”,

“hoofdingAfbeelding”:{

“url”:“https://cdn.vdab.be/vindeenjob/templates/vacatures/3204/header.jpg”,

“altText”:“Hoofding afbeelding”

},

“hoofdingAfbeeldingMobiel”:{

“url”:“https://cdn.vdab.be/vindeenjob/templates/vacatures/3204/mobileLogo.png”,

“altText”:“Mobiele hoofding afbeelding”

},

“signatuurAfbeelding”:{

“url”:“https://cdn.vdab.be/vindeenjob/templates/vacatures/3204/signatuur.png”,

“altText”:“Signatuur afbeelding bedrijf”

},

“signatuurBedrijfsUrl”:“Home | Infrabel”,

“vacatureTemplateId”:3204

},

“leverancier”:{

“contactMethode”:{

“fysiekeLocatie”:{

“gestructureerdAdres”:{

“gemeente”:“SINT-GILLIS”,

“nummer”:“2”,

“postcode”:“1060”,

“straat”:“Marcel Broodthaersplein”,

“straatNummerPostbus”:“Marcel Broodthaersplein 2”,

“lijn”:“Marcel Broodthaersplein 2 1060 SINT-GILLIS”

},

“land”:{

“code”:“BE”,

“label”:“België”,

“kortLabel”:“België”

}

}

},

“type”:“GEWONE_BEDRIJVEN”,

“naam”:“INFRABEL”,

“gemandateerd”:true,

“organisatie”:{

“id”:10346786,

“naam”:“INFRABEL”,

“bedrijvenGalerijId”:3203,

“omschrijving”:“Infrabel bouwt, onderhoudt en vernieuwt de spoorweginfrastructuur in België en stuurt alle treinen aan die op ons spoornet rijden. Zo geraken dagelijks meer dan 600.000 reizigers en jaarlijks 50 miljoen ton goederen veilig op hun bestemming. Met zo’n 10.000 medewerkers werken we aan een betrouwbaar en modern spoorwegnet, om de mobiliteitsbehoeften van onze samenleving mee te ontwikkelen en bij te dragen aan een duurzame samenleving. Ons team bestaat uit gepassioneerde medewerkers die uitblinken in hun vakgebied en elke dag hun talenten inzetten voor hun job. En dat in een innovatief bedrijf, met behulp van de nieuwste technologieën, met veel flexibiliteit en met ruimte om te groeien. Help jij mee onze ambitieuze doelen te bereiken? Wil jij een job met impact? https://infrabel.be/nl/jobs/jobs”,

“erkenningsnummer”:“”,

“website”:“http://www.infrabel.be”,

“prioritair”:true,

“externeLinks”:[

{

“type”:“Facebook”,

“url”:“Redirecting...

},

{

“type”:“linkedin”,

“url”:“https://www.linkedin.com/company/infrabel/

}

],

“gemeente”:“SINT-GILLIS”

}

},

“profiel”:{

“tewerkstellingsLocatie”:{

“bedrijfsLocatie”:{

“gestructureerdAdres”:{

“gemeente”:“SINT-GILLIS”,

“nummer”:“2”,

“postcode”:“1060”,

“straat”:“Marcel Broodthaersplein”,

“straatNummerPostbus”:“Marcel Broodthaersplein 2”,

“lijn”:“Marcel Broodthaersplein 2 1060 SINT-GILLIS”

},

“land”:{

“code”:“BE”,

“label”:“België”,

“kortLabel”:“België”

}

},

“regioOfAdres”:“SINT-GILLIS”

}

},

“dubbels”:[

],

“laatsteWijzigingDatum”:“2022-10-26T11:41:00.869+02:00”,

“eerstePublicatieDatum”:“2022-10-26T08:38:31.434Z”,

“laatstePublicatieDatum”:“2022-10-25T22:00:00Z”

}

Right now it doesn´t pass anything. Unlucky I didn’t have the logs switched on yesterday. :-/ So no info there.

Hey, @MutedJam , any idea?

Hi @Kool_Baudrillard

Seems like you are putting in a number to act as a workflow json? this is not how execute workflow node works.
Haven’t checked the whole conversation. But seems like you need to set this to the ID and fill in the workflow ID.
Then the items will be put into the sub workflow and will run this for each item within that workflow.

ps. I see some dutch text so want to invite you to the Dutch(speaking) community.

1 Like

Hi @Kool_Baudrillard, I am so sorry for that - I must have overlooked your response. I think @BramKn has a good point here, so you might want to check your Execute Workflow node in a first step.

2 Likes

Hi Bram,

it’s the id of the referentie field.

Unfortunately I´m not dutchspeaking, just trying to get some insights in the Belgian labourmarket.

Ah ok,

So why are you inputting that as the subworkflow json? :smile: :sweat_smile:

I´m not getting it, acess token should be passed to the execute flow, it gets called, but nothing is being handed over.

this is what I get as an error:

NodeApiError: The resource you are requesting could not be found
    at Object.execute (/home/ec2-user/.nvm/versions/node/v18.12.1/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js:1158:27)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Workflow.runNode (/home/ec2-user/.nvm/versions/node/v18.12.1/lib/node_modules/n8n/node_modules/n8n-workflow/dist/Workflow.js:658:28)
    at async /home/ec2-user/.nvm/versions/node/v18.12.1/lib/node_modules/n8n/node_modules/n8n-core/dist/WorkflowExecute.js:585:53

@BramKn @MutedJam Any idea what’s happening here?

seems pretty straightforward. the workflow doesnt seem to exist. are you sure there is a workflow with id 33?

Yes, I’m sure. 2nd workflow starts but no data gets handed over. Tried it with different Workflows.

Im front of is a loadbalancer :-/

A load balancer shouldn’t matter if you are calling a workflow on the same instance. It is a bit odd that there is no data, my initial thought is maybe there is no data to sent.

Are you calling the workflow in a loop?

Yes, there‘s a an api, which I call and would like to pass data in batches. Request node → Split items → set node to keys i want to pass —> batches of 10 to execute workflow node