ChatGPT Project Context Bleeds From Old Chats

It carries details from a previous chat into the current one — Memory, Project context, and cross-chat behavior boundaries aren't clear.

ChatGPT’s “memory” has three independent sources: global Memory (Settings → Personalization), Project Instructions / Files (current Project only), and the current chat’s message history. Three layers, each with its own rules, but the UI mashes them together — you expect “Project A stuff stays in Project A,” but global Memory carries preferences across every Project. Or you expect chats inside a Project to share context, but each chat is actually independent. Almost every “leak” is a layer-confusion problem.

Common causes

Ordered by hit rate, highest first.

1. Global Memory carries cross-Project preferences

The most common failure. You once said “I prefer Python,” model saved it to Memory. Now in a JS-focused Project you ask “how to implement X,” it gives Python — Memory crossed Project boundaries.

How to spot it: Settings → Personalization → Manage memories. Entries unrelated to the current Project = this is the cause.

2. Project Instructions written as too-fuzzy / story-like

Instructions written as “this Project is about our e-commerce platform, we do SEO optimization” — model uses that as background context perpetually, even when you ask unrelated questions and it still answers with an e-commerce tone.

How to spot it: Instructions > 500 chars, large blocks of “background / team description / project history” = this case.

3. Same Project, multiple chats — model “guesses” past state

Technically each chat is independent, but Project Instructions + Files are shared. When multiple chats touch similar topics, the model can produce answers that “seem to remember” — making you think it’s reading other chats.

How to spot it: Re-run the same prompt in a totally unrelated Project; the “memory” disappears = it was a shared-context illusion.

4. You leaked the context earlier in the same chat

In a 20-turn conversation you mentioned “the client said X” at turn 5. By turn 18 you forgot but the model is still pulling from context — not a leak, just an honest citation.

How to spot it: Search the current chat history; the info is actually there = legitimate reference, not leak.

5. Custom Instructions (account-level) affect every Project

Settings → Personalization → Custom Instructions applies to every Project. “I’m an engineer” makes every Project lean technical.

How to spot it: Temporarily clear Custom Instructions and rerun — tone / preferences change = this is interfering.

6. Team / Enterprise workspace settings override personal Memory

In a Team workspace, admin-set workspace-level instructions may override your personal Memory, but you assume it’s Memory that’s leaking.

How to spot it: Run the same prompt in Personal Workspace — different behavior = workspace settings are the cause.

Before you start

  • Confirm this is in Projects (not Custom GPT / plain chat).
  • Duplicate the chat before retesting so history doesn’t pollute the next diagnostic.
  • Confirm plan + workspace: Personal vs Team / Enterprise behave slightly differently re Memory.

Info to collect

  • Project name + Project Instructions text screenshot + char count.
  • Current Memory entries screenshot (redact PII).
  • Custom Instructions text (screenshot).
  • A concrete “leak” example: you expected it not to know X, it stated X.
  • Current model + Personal / Team Workspace.

Shortest fix path

Ordered by ROI. The first two solve ~70% of cases.

Step 1: Prune Memory of entries unrelated to current Project

Steps:

Settings → Personalization → Manage memories
→ Walk through every entry → Delete:
  - Old-project preferences ("that project used React")
  - One-off scenario preferences ("last time fixing a bug, used Python")
  - Personal info irrelevant to current work
Keep:
  - Always-true cross-scenario preferences ("reply concisely")

Audit Memory monthly.

Step 2: Rewrite Project Instructions as “hard constraints + don’ts,” not stories

Bad → good:

Bad (800-char backstory):
This Project is about our e-commerce platform built in 2024 by the
marketing team. We sell organic products to women aged 25-40. Our
brand voice is warm and friendly. The team prefers Python because
historically we've used Django...

Good (150-char hard rules):
Constraints (always follow):
- Reply in en
- Output format: one paragraph, ≤ 300 words
- Tech stack: TypeScript only (no Python suggestions)
- Don't reference external products / competitors

Context: e-commerce SEO project for organic goods.

Short and hard beats long and soft.

Step 3: Declare “ignore other chats” at the top of each chat

To stop the model from “guessing”:

This is a fresh chat. Ignore any context from other chats in this
Project. The task is: <X>

The model doesn’t cross-chat read anyway, but explicitly saying it improves isolation when multiple chats touch similar topics.

Step 4: One Project = one clear goal

If a Project mixes “SEO + customer service scripts + data analysis,” confusion is near-inevitable. Split into three:

  • Project A: SEO
  • Project B: Customer service
  • Project C: Data analysis

Each with tight Instructions and dedicated files.

Step 5: Temporarily disable Memory to verify

If unsure whether Memory is leaking:

Settings → Personalization → Memory → toggle off
→ Open a fresh chat, rerun the same prompt
→ Different behavior = Memory was influencing
→ Go back to Manage memories, delete relevant entries
→ Toggle Memory back on

Step 6: Tighten Custom Instructions

If your Custom Instructions are too broad (“I’m a PM, like concise”), they override per-Project rules. Change to:

Default style preferences (overridable by per-Project rules):
- Concise unless asked for depth
- English by default

The explicit “overridable” tag helps the model let Project Instructions win when they conflict.

Step 7: Use Temporary Chat for sensitive tasks

Temporary Chat (top-right toggle) by design doesn’t read Memory, doesn’t write Memory, doesn’t keep history. Customer-private info, one-off research, anything you don’t want to influence future answers → always Temporary Chat.

How to confirm the fix

  • After pruning Memory, open a fresh chat and rerun the same prompt — leaked content gone = truly fixed.
  • Run the same prompt in a totally unrelated Project — current Project’s specifics don’t carry over = isolation works.
  • Have a colleague duplicate the Project and rerun — consistent behavior = not just your Memory state got fixed.

If still broken

  • Cut the Project to minimum: delete all Instructions + Files, keep one rule line, rerun — see if configs are fighting.
  • Switch Workspace: Personal → Team, run same prompt, see if workspace settings are leaking.
  • Fully rebuild the Project: create new, paste trimmed Instructions, don’t import old chat history.
  • Package Memory list + Project Instructions + concrete leak screenshot, file a ticket at help.openai.com.

Prevention

  • Audit Memory monthly; delete expired / one-off preferences.
  • Project Instructions = hard constraints + don’ts, never backstory.
  • One Project = one clear goal; never mix 3 themes.
  • For multi-chat Projects, declare per-chat task scope at the top of each chat.
  • Sensitive / one-off scenarios always go in Temporary Chat — never pollute Memory or Project.

Tags: #ChatGPT #Troubleshooting