September 13, 202610 min

ChatGPT Memory Is Full: What to Prune and What to Keep

At some point ChatGPT stops saving things. You tell it to remember a preference and it agrees, warmly, and nothing appears in the memory list. Or you get an explicit message that memory is full. Either way you are now looking at a list of entries you mostly do not recognise, wondering which of them you can safely delete.

This is a maintenance problem rather than a fault, and it has a clean answer once you stop treating the list as a record of the past and start treating it as a working set. The entries earning their place are the ones that change what the assistant does this week. Everything else is taking up room.

What follows: how to confirm capacity is genuinely your problem, a triage order for deleting, the entries worth protecting, and how to stop the list filling up again three months from now.

What "Full" Actually Means

The saved memory list is a bounded store. It holds discrete facts extracted from your conversations, and it has a cap.

The exact limit is not published. Treat any specific number you find quoted with suspicion, including in articles that sound confident about it, because there is no official figure to cite and the behaviour has changed before. What is observable is the symptom: at some point new entries stop landing, and there is no way to buy or request more room. The only lever is deletion.

Two things worth being clear about, because both cause unnecessary panic.

Full does not mean broken. Everything already stored is intact and still in use. The assistant has not lost anything. It simply cannot add.

Full is not the same as the context window filling. A long conversation losing track of its own beginning is a completely different mechanism with a completely different fix, and the two get conflated constantly. If your complaint is "it forgets things I said an hour ago in this chat", capacity is not your problem and pruning will not help. That failure is covered in ChatGPT Context Loss Mid-Conversation.

Confirm It Is Capacity Before You Delete Anything

Deletion is irreversible, so spend two minutes ruling out the alternatives. A save that does not land has at least four plausible causes, and they look identical from the outside.

The memory feature is switched off. Nothing is saved from any conversation. Open your settings and read the controls rather than trusting a remembered label; their names and placement have moved between product versions. The full tour is in ChatGPT Memory Settings: Complete Control Guide.

You are in a temporary chat. Temporary chats do not write memories, by design. This one is easy to hit accidentally and easy to check.

The save failed server-side. An individual write can fail and surface an error, which is a transient problem rather than a capacity one. If you saw an error message rather than silence, start with ChatGPT User Not Found for Bio Error.

ChatGPT did not judge it worth saving. Extraction is selective. A casual mention may simply not trigger a write, and stating the fact explicitly is a better first response than clearing your list.

The capacity signature is specific: saves used to work, nothing about your settings or your phrasing changed, and the list is visibly long. If that is not your situation, the diagnostic sequence in How to Fix ChatGPT Memory Issues will get you to the right cause faster than deleting things will.

Copy the List Before a Large Prune

There is no undo. Deleted entries do not go to a recycle bin, and there is no version history to roll back to.

Before a large prune, select the contents of the memory list and paste them into a plain text file. It takes under a minute and it turns an irreversible operation into a reversible one, because anything you removed by mistake can be restated in a fresh chat from your copy.

Do not assume your account's data export covers this. Whether the saved memory list appears there is worth checking against your own export rather than taking on trust, and "I assumed the export had it" is a poor thing to discover after the fact. If you have not worked through an export before, What to Do With Your ChatGPT Data Export covers what is in one and how to read it.

The Triage Order

Work down this list. It is ordered so that the safest deletions come first and you can stop as soon as you have room.

1. Finished projects. The largest category by a wide margin, and the least missed. Entries describing a client you no longer have, a codebase you shipped, a trip you took, a decision that was implemented a year ago. These were load-bearing once and are now purely historical. Delete freely.

2. Superseded preferences. Anything of the form "prefers X" where you now prefer Y. These are worse than useless: they are actively producing wrong behaviour, and they tend to sit alongside the newer entry rather than being replaced by it, which is why the old preference resurfaces unpredictably. The mechanism is explained in ChatGPT Remembers Wrong Information.

3. Duplicates and near-duplicates. Repeating a fact across several conversations often produces several entries saying roughly the same thing in slightly different words. Keep the clearest one and delete the rest.

4. Over-specific trivia. A one-off formatting instruction for a document you wrote in March. The name of a file you no longer have. Anything that could only ever apply to a single conversation is not general enough to earn a permanent slot.

5. Things that were never about you. Facts extracted from a hypothetical, a quoted passage, a piece of fiction you were drafting, or a question asked on someone else's behalf. These are usually the strangest entries in the list, and they are the ones that make people nervous about the feature. They can go.

6. Inferences you never stated. Entries that read as conclusions rather than statements. Someone mentioned a deadline and it recorded an occupation. If it is not true, or true but not something you want applied, remove it.

By the time you have done the first two categories, most lists have plenty of room.

What to Keep

The mirror image matters just as much, because an over-aggressive prune costs you the thing memory is actually good for. Protect these:

Stable facts about how you work. The languages and tools you use, the domain you work in, the level of explanation you want. These are what stopped the assistant asking the same three orientation questions at the start of every session.

Hard constraints. Accessibility requirements, dietary restrictions, an allergy, a compliance rule you cannot break, a platform you cannot use. Re-explaining these is tedious at best and consequential at worst.

Long-lived context. Ongoing responsibilities, a role you have held for years, a language you are learning, a condition you manage. Anything whose useful lifetime is measured in years rather than weeks.

Explicit corrections. If you went to the trouble of correcting something and the corrected version was stored, that entry is doing real work. Deleting it invites the original error back.

The test that resolves most borderline cases: would I want this applied to a conversation I start tomorrow? Not "was this true" and not "was this important at the time". If the answer is no, it is history rather than memory, and the list is not a place to keep history.

Doing the Deletion

The list lives in your settings, under the personalisation controls, and each entry has its own delete action. Two practical notes.

Prune entry by entry rather than clearing everything. The clear-all button is right there and it is almost always the wrong tool. It is irreversible, it takes the accumulated context that was doing useful work along with the junk, and it leaves you re-establishing your own basics for weeks. Full-reset instructions are easy to find and mostly answer a different question than the one you have; the full-wipe case and what it costs is covered in How to Make ChatGPT Forget Everything About You.

Reload and confirm. Looking at the list after a reload is the only step in the process that produces actual evidence. An agreeable reply in a chat is not evidence, and neither is an entry that appears to have vanished from a stale view.

Then test in a genuinely new conversation rather than in the chat you already had open. The open one still holds everything you just deleted in its context window, so it will happily keep using it and you will conclude, wrongly, that the deletion failed.

Why It Fills Up Again

Pruning treats the symptom. The reason you are doing it at all is structural, and naming it tells you whether to expect this every quarter.

Extraction is automatic and you did not choose what went in. It is not scoped to a project, so work context and personal context accumulate in the same list. Nothing expires, so a fact from a finished project sits there with exactly the same standing as one from this morning. And the only operations available after the fact are keep and delete.

Put those together and the list is a store that grows monotonically, mixes lifetimes, and offers subtraction as its only maintenance tool. It fills up because that is what it does.

Which means the realistic posture is a rhythm rather than a fix. A quarterly pass through the list, reading each entry and asking whether you would want it applied tomorrow, takes about ten minutes and prevents both the capacity problem and the slow drift into wrong answers that stale entries cause. Doing it before you are full is considerably more comfortable than doing it under pressure with saves already failing.

Keeping the Bulk Somewhere Unbounded

The deeper issue is that a short, capped, automatically-populated list is being asked to hold something it was never shaped for: the working state of your actual projects. That is a document, not a handful of bullet points, and no amount of pruning makes a bounded list into a good home for it.

The alternative is to keep that material where you can see it, edit it, and supply it deliberately. That is MindLock's approach. You save the conversations that mattered with Ctrl or Cmd plus S, or with the one-click button from the sideloaded Chrome extension, upload them, and distillation turns them into memory documents covering decisions, constraints and current state. When you start a new chat you generate a context block from the memories relevant to that piece of work and paste it in as the first message. Finished project? Stop selecting it. There is no capacity pressure because there is no shared cap, and nothing needs deleting to make room.

Three honest caveats. Nothing is automatic: saving is a keystroke you press, and memory documents change when you re-run distillation rather than continuously. Local distillation runs in your browser and needs a WebGPU-capable GPU, with cloud distillation on the Pro plan as the route for machines without one. And none of it touches your ChatGPT account, so the list still needs its quarterly pass. What it changes is how much depends on that list being right.

The Short Version

A full memory list is a capacity limit, not a fault. Nothing is lost; nothing more can be added. The cap is not published, so distrust any specific number you see quoted.

Confirm capacity is really your problem first, since a memory toggle that is off, a temporary chat, a failed write and a fact that was never judged worth saving all look the same from outside. Copy the list to a text file before a large prune, because deletion has no undo.

Then delete in order: finished projects, superseded preferences, duplicates, over-specific trivia, facts that were never about you, inferences you never made. Keep the stable facts about how you work, the hard constraints, the long-lived context and the corrections you fought for. The deciding question is whether you would want the entry applied to a conversation you start tomorrow.

Prune entry by entry rather than clearing, reload to confirm, and test in a new chat. Then put it in the calendar quarterly, because a store that never expires anything and only offers deletion will fill up again.