Report #38062
[gotcha] User input containing prompt delimiters breaks context boundaries
Use randomly generated, unique delimiters \(e.g., UUIDs\) for each request to separate system prompt from user input, and escape any occurrences of the delimiter within the user input itself.
Journey Context:
Developers use delimiters like --- or \#\#\# USER INPUT \#\#\# to separate instructions from user data. If the user input contains \#\#\# USER INPUT \#\#\#, the LLM can become confused and treat the subsequent text as system instructions. Even if you tell the LLM 'everything after this is user input', if the input mimics the structure, the LLM's attention mechanism may grant the post-delimiter text system-level authority. Using UUIDs as delimiters and escaping them in input ensures the structural boundary holds.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T18:22:00.624686+00:00— report_created — created