When AI Chat Export Fails Silently — the Role-Prefix Parsing Trap
If you've ever copied a conversation with ChatGPT or Claude, pasted it into a chat export tool, hit "Parse," and had nothing happen, that's not the tool freezing — it's a signal that it couldn't recognize the roles in the text. The problem is that no error message appears at that point. This guide explains, structurally, why this kind of text-parsing tool fails "silently," and what input it actually recognizes.
1. What the paste parser actually does
This kind of tool isn't connected to the real ChatGPT or Claude API. It only sees a single block of plain text the user copied and pasted from the screen, and it has to infer the structure — "from this line on it's the user speaking, from this line on it's the AI" — by itself. Distinguishing speakers purely from the string pattern at the start of each line, with no structured data at all, is the fundamental way such a parser works.
2. Exactly what pattern does it look for
The tool recognizes the start of a new message only when the beginning of a line starts with one of the patterns below and is immediately followed by a colon (: or :).
| Role | Recognized prefixes |
|---|---|
| user | user, 사용자, ユーザー, 用户, you, human |
| assistant | assistant, 어시스턴트, アシスタント, 助手, ai, chatgpt, claude, gemini |
| system | system, 시스템, システム, 系统 |
It's case-insensitive, but it must come at the very start of the line with a colon immediately attached. An expression not in this list (e.g. "Q:", "A:", "Question:", "Answer:") is not recognized at all, no matter how conversation-like it looks.
3. What actually happens on recognition failure
The core behavior of the parse function is this: it scans the text line by line, finds lines matching a pattern, and stacks them into a message list (msgs). But at the end there's a single condition, if(msgs.length), so if not a single line matched, this list stays empty and the existing message builder screen is not updated at all. It doesn't throw an error or pop a warning. To the user it just looks like "paste → click Parse → nothing changes on screen," and this isn't a bug — it's exactly the intended (but unforgiving) behavior.
4. Recognized input vs. unrecognized input
Below are contrasting examples of formats that actually parse successfully and formats that look similar but fail.
| Input example | Result |
|---|---|
User: hello | ✅ Recognized (user/assistant prefix + colon) |
사용자: a question | ✅ Recognized (Korean prefixes supported too) |
Q: a question | ❌ Not recognized (Q/A aren't in the list) |
Me: hey | ❌ Not recognized ("Me", "Bot" aren't specified words) |
One more thing to know: everything before the first recognized prefix line (e.g. a conversation title or a date note) is discarded entirely from the parse result.
5. Practical tips
- If you hit Parse and the screen is unchanged, nine times out of ten it's a prefix-format issue — check first whether your source text exactly matches the supported list in the table above.
- Even when a result comes out, build the habit of eyeballing "did every turn actually split correctly," even briefly. Paste a long conversation whole and never re-read the result, and you won't notice when the structure is wrong.
- If the text you copied from ChatGPT or Claude uses labels different from what the tool expects, it's faster to add labels like "User:"/"Assistant:" yourself before pasting.
Frequently Asked Questions
Q. I pasted and parsed, but nothing changed on screen.
A. The parser only recognizes lines that start with a defined role prefix (User:, Assistant:, System: and their Korean/Chinese/Japanese translations). Use an expression not in that list and the matched message count becomes 0, the existing message builder screen stays as-is, and there's no error shown.
Q. Does it parse Q:/A: style conversations?
A. No. Only user/assistant/system-family words are recognized, so prefixes like Q: and A: aren't detected as roles and the parse result comes out empty.
Q. What happens to a title or date line before the first role prefix?
A. It's completely discarded. For example, if a title line "January 2024 conversation log" is followed by "User: hi", the title line is not included in the output at all.
Q. Which prefixes are recognized?
A. user/사용자/ユーザー/用户/you/human map to user; assistant/어시스턴트/アシスタント/助手/ai/chatgpt/claude/gemini map to assistant; system/시스템/システム/系统 map to system. It's case-insensitive, but must start at the beginning of the line with a colon immediately after.