What's the weirdest thing you've had to work around when putting an LLM inside an n8n workflow?

I’ve been reading through a batch of real n8n + AI workflows lately — RAG agents hooked into vector databases, classification steps routing support tickets, retry logic for when a model just won’t follow the prompt. The pattern I keep seeing: the actual hard part is never “can I call an LLM from n8n,” it’s the stuff around it — validating outputs, handling rate limits, catching the 1-in-20 run where the model does something unexpected.

Context on why I’m asking: I run SurveyBridge, a research panel specifically for people who build with AI/automation tools — not people who are “interested in AI,” people who’ve actually shipped something and hit real problems doing it. We verify every participant by hand before they get survey access, partly because general panels can’t tell the difference between someone who’s used ChatGPT and someone who’s debugged a flaky agent in production at 2am.

Not trying to sell anything here — genuinely curious what this community has run into. If you’re the kind of person who’d have a good answer to the question above, verification’s open and I’d like to see your answer in it too. https://app.surveybridge.dev/
But mostly — tell me the failure mode. I want to hear it.

Honestly the recurring one is output shape, not content. A model asked for JSON returns it fine most runs, then on run 20 it wraps the object in a markdown fence or prefixes a sentence, and the next node’s expression dies on a missing key — so I stopped letting any downstream node read the raw LLM text. A Code node immediately after the model parses and coerces the expected fields, and a parse failure routes to a branch that retries with the error appended to the prompt instead of failing the whole run. The second class is rate limits: they’re per credential, not per workflow, so parallel branches sharing one key trip each other’s 429s, and a single loop with a small delay between calls is less glamorous but stops it. The sneaky third one is a hallucinated but plausible-looking ID that flows straight through the workflow — if a value came from the model, assert it against the source before anything acts on it.

1 Like