AI Compliance · RAG Engineering
Your RAG System Can't Forget: The Right to Erasure Problem Nobody Engineered For
A deletion request lands on a Tuesday. A former client wants their data gone.
Your engineer opens the admin panel, removes the client record, purges the uploaded contracts from the document store, and closes the ticket within the hour. Six weeks later the internal assistant, asked a routine question about payment disputes, cites that client’s settlement terms by name.
Written by Vladimir Zhemerov
Senior Product Manager & AIO/GEO SpecialistPublished 2026-08-10
Category
AI Compliance · RAG Engineering
Reading time
14 min read
Updated
2026-08-10
Audience
Engineering · Legal · Security
Nobody was careless here. The row was deleted. The files were deleted. The assistant answered from a chunk that had been sitting in the vector index the whole time — retrieved by semantic similarity, stitched into a response, and written to the prompt log on the way out.
The gap comes from architecture. A retrieval pipeline copies data into stores that standard deletion tooling never touches, and every one of those stores can put the data back in front of a user.
Interactive · Where the data actually lives
One uploaded document, six stores holding a copy — select a store to see what it keeps
The vector index
document.pdf
03The vector index
Not reachedAn embedding per chunk, stored with metadata and usually the chunk text itself; embeddings can be inverted back to readable text
Delete calls create tombstones; physical removal waits for background cleanup
All six stores
01The source store — Reached by row delete
Original file in object storage, plus the parser's intermediate output
The one copy your current deletion process knows about
02The chunk store — Not reached
The document split into dozens of retrieval-sized passages; one chunk can name three different people
Person-level requests map badly onto chunk boundaries without a person → document → chunk mapping
03The vector index — Not reached
An embedding per chunk, stored with metadata and usually the chunk text itself; embeddings can be inverted back to readable text
Delete calls create tombstones; physical removal waits for background cleanup
04The logs — Not reached
Retrieval hits, prompts carrying retrieved passages verbatim, completions restating them; tracing platforms duplicate all three
The most readable copy, and the store teams forget first
05The caches — Not reached
Finished answers keyed by query similarity
A cached answer built from deleted data keeps serving until invalidated
06Backups & replicas — Delayed by design
Nightly snapshots of everything above, on their own retention schedule
The one legitimate delay — if restores trigger re-deletion
Six is the floor, not the ceiling: evaluation datasets, fine-tuning exports and analytics warehouses add copies when a pipeline feeds them. Store descriptions are the article's own examples.
The short answer
Definition
Erasing personal data from a RAG system means removing it from every store able to reproduce it: the source files, the parsed chunk store, the vector index and its metadata, retrieval and prompt logs, semantic caches, and backups.
A conventional deletion workflow reaches the first of those stores and reports success.
The legal clock ignores that architecture. GDPR Article 17 requires erasure without undue delay once a valid request arrives, and Article 19 requires telling every recipient of the data about it — which includes the embedding API and the model provider your pipeline calls. Israel moved to a similar posture in August 2025, when Amendment 13 took effect with statutory damages that need no proof of harm.
The enforcement climate is set. Cumulative GDPR fines reached €7.1 billion by 10 January 2026, with €1.2 billion issued in 2025 alone, and European authorities now receive 443 breach notifications per day. One of the largest AI-related penalties on record — the Dutch DPA’s €30.5 million fine against Clearview AI — came with orders to delete data, and the regulator singled out the vector representations: the biometric codes, which it compared to fingerprints.
A European authority has already ordered embeddings erased. That precedent exists today.
Interactive · Evidence · Enforcement and reconstruction
What erasure failures already cost, and how recoverable “deleted” vectors turned out to be
Enforcement · Europe, to January 2026
€7.1B
cumulative GDPR fines since 2018
€1.2B
fines issued in 2025 alone
443/day
personal data breach notifications, up 22% year over year
€30.5M + deletion order
Dutch DPA v. Clearview AI — the order explicitly covered the biometric codes
Reconstruction · soft-deleted vectors, June 2026 study
99%
top-1 identity accuracy recovering soft-deleted facial embeddings
100%
tissue-class accuracy on soft-deleted medical imaging patches (N=1000)
0%
recovery after epoch key rotation (crypto-shredding), at 0.005 ms per record
Bases differ per row: fine totals are cumulative regulator-reported figures (DLA Piper, Jan 2026); reconstruction rates come from a June 2026 study of soft-deleted records in HNSW indexes (arXiv 2606.18497) and describe the tested datasets, not all deployments. Figures are not additive.
Where a single sentence about a person ends up
Follow one document through a standard ingestion pipeline. A client emails a PDF — a settlement agreement mentioning two employees and one customer by name. The pipeline does its job well, and by the next morning that one document exists in six places.
- 01
The source store. The original file in object storage, plus the parser's intermediate output. This is the copy your current deletion process knows about.
- 02
The chunk store. The document split into passages — typically dozens per file — sized for retrieval, with boundaries drawn by token count and headings. A person's name now sits inside chunks that also describe other people.
- 03
The vector index. Each chunk embedded into a high-dimensional vector, stored with its metadata and, in most setups, the chunk text itself. Embeddings can be inverted back to readable text, which is why treating them as anonymized numbers fails on contact with an inversion attack.
- 04
The logs. Retrieval logs record which chunks matched which queries. Prompt logs carry the retrieved passages verbatim into every LLM request. Completion logs restate the substance in the model's answer. Tracing platforms often duplicate all three.
- 05
The caches. Semantic caches store finished answers keyed by query similarity, so a cached response built from deleted data keeps serving until someone invalidates it.
- 06
Backups and replicas. Nightly snapshots of everything above, on their own retention schedule, restorable long after the live copies are gone.
Six is the floor. Evaluation datasets, fine-tuning exports, and analytics warehouses each add a copy when a pipeline feeds them.
None of these copies escapes the law by being derived. The Israeli Privacy Protection Authority’s draft AI guidance states that the Privacy Protection Law covers information AI systems infer or derive from personal data, and European analysis of the GDPR’s “any information” standard reaches the same place: an erasure request should be able to remove a vector along with its source chunk.
An embedding you can’t find and can’t delete remains personal data. It has simply become personal data you’ve lost control of.
Why deleting the row doesn’t delete the data
Chunks ignore people
Chunking splits documents by structure and token budget. People appear wherever the text puts them. One chunk of a settlement agreement can name three individuals, which means a person-level erasure request maps onto chunk boundaries badly in both directions: deleting whole documents removes more than the requester’s data, while deleting nothing below the document level removes less. Without a mapping from person to documents to chunks, every deletion request starts with a discovery project across your own index.
Vector indexes bury their dead
Most production vector stores handle deletion the way log-structured systems always have: mark now, clean later. Weaviate’s own documentation is direct about it — deletion does not happen instantaneously; a tombstone is created, and data removal and index cleanup run as background processes on a configurable cycle. At scale the cleanup gets heavy enough that dedicated environment variables exist to cap how many tombstones each cycle may remove, and operators’ forums carry threads about cleanups consuming cores for hours.
The window between “marked” and “gone” stopped being theoretical this year. A June 2026 study of HNSW-based stores — the index family behind Weaviate, FAISS, and ChromaDB deployments — found that soft-deleted embeddings remain physically unchanged on disk and reconstructible: 99% top-1 identity accuracy on deleted facial embeddings, 100% tissue-class accuracy on deleted medical imaging patches. Deleted nodes stayed structurally active inside the graph, and their presence even leaked through a measurable timing side channel. The API reports success while the bytes stay put.
An erasure obligation cares about the bytes. Treating an API’s silence as proof of deletion means certifying something your storage layer hasn’t done yet — and may not do for a long time if cleanup cycles are tuned down to protect query latency.
Logs and caches answer for the dead
Prompt logs are the store teams forget first, and the one that holds the data in its most readable form: full retrieved passages, inlined into every request, timestamped and searchable. Delete the source, the chunks, and the vectors, and a grep through last quarter’s LLM traffic still returns the requester’s settlement terms in plain text. Semantic caches behave the same way with a shorter fuse — a cached answer derived from deleted content keeps serving matches until an invalidation reaches it, and cache keys built on query similarity make targeted invalidation genuinely hard.
Backups are the honest delay
Backups get a defensible timeline where the other stores get none. The workable pattern: erase from live systems now, let snapshots expire on a documented retention schedule, and keep a re-deletion list that runs after any restore — because a restore without one silently resurrects every record you’ve certified as gone. Israeli guidance closes the loop explicitly: the PPA’s draft DPO guidelines require disposal to cover backup systems and decommissioned equipment, which pulls restored-snapshot hygiene inside the compliance perimeter.
Interactive · Simulation · The standard deletion
Press the button every team presses — then see which stores answered
$ awaiting command_
Both runs, as text
DELETE customer_record
- source — deleted
- chunks — no matching key — 0 rows affected
- vectors — tombstoned · physical cleanup pending
- logs — retained · 47 prompt entries still readable
- caches — 3 cached answers still serving
- backups — present in 30 nightly snapshots
Coverage: 1 of 6 stores. The ticket says done.
RUN WITH DELETION PIPELINE
- source — deleted · verified
- chunks — deleted · verified
- vectors — purge confirmed
- logs — redacted
- caches — invalidated
- backups — re-delete list appended
Coverage: 6 of 6 · receipt generated
A schematic of the coverage gap, not a benchmark of any specific product. Vector-store behavior reflects tombstone-based deletion as documented by HNSW-backed systems; timing is illustrative.
What regulators have already said
The doctrine is younger than the architecture, but the pieces on the board point one way.
The EDPB set the anonymity bar high. Opinion 28/2024 rejected the idea that AI models trained on personal data are anonymous by default. A model earns that status only when the likelihood of extracting personal data is insignificant and queries can’t surface it either — assessed case by case, per data subject, against “all means” of identification. One count of the text found “case by case” 16 times and “may” or “might” 161 times, which tells you how much room a supervisory authority has kept for itself. Planning against the strict reading costs less than betting on the lenient one.
A deletion order aimed at vectors already exists. The Dutch DPA’s Clearview decision fined the company €30.5 million, added penalty orders worth over €5 million more, and ordered the deletion of data on Dutch data subjects. The authority’s language went straight past the photos to the derived representations: Clearview should never have built the database of photos and unique biometric codes, “and this especially applies to the codes”. Vectors computed from personal data drew the sharpest part of the order.
The CNIL wrote the fallback rules. France’s regulator confirmed that data subject rights apply to the model itself whenever it isn’t anonymous, acknowledged that retraining comes at a very high cost, and accepted output filtering as an interim answer only where the controller demonstrates the filters are effective and robust enough that they can’t be circumvented. It also attached a clock to the whole question: requests that may lawfully be refused today will have to be honored tomorrow if unlearning and re-identification techniques mature. Refusal is a position you have to keep re-earning.
Israel is converging on the same posture. Amendment 13 has been in force since August 2025 — the wider Israeli picture is covered in our AI compliance guide — and the PPA’s draft AI guidance signals strict enforcement of access, correction, and deletion rights for AI systems specifically, noting that correcting AI output may require changing the algorithm that produced it. For a company running RAG over customer data in Tel Aviv, the practical difference from Brussels is shrinking by the quarter.
Fine-tuning: where deletion stops being an option
Everything above assumes the data sits in a retrieval layer, where a deletion pipeline can reach it. Move personal data into model weights through fine-tuning and the toolbox collapses to three items, none of them good.
Retraining from scratch works and costs accordingly — the CNIL names the expense outright as the reason other measures exist. Machine unlearning, the research program meant to solve this, keeps publishing reasons for caution about itself: a 2026 ICML study found that unlearned models pass the standard forgetting metrics while the “forgotten” information remains recoverable through minimal fine-tuning — suppressed rather than erased — and follow-up work shows benign relearning on innocuous data can jog suppressed content back. The field’s own running bibliography counts over 600 papers, and one of its 2026 position papers argues the term itself is overused. Output filtering, the third option, carries the CNIL’s robustness condition: it counts only while nobody can talk their way around it, a bar that prompt-injection research keeps lowering.
The architectural rule that falls out of this is short. Personal data lives in the retrieval layer, where erasure is an engineering problem with a solution. Weights stay clean. Where a fine-tune genuinely must see personal data, log exactly which records went in and treat the resulting model as a deletable asset — one whose erasure story is retirement and retraining, priced in from day one.
RAG earns its reputation as the compliance-friendly pattern only after the deletion pipeline below exists. Before that, it concentrates the same personal data in more places than the system it replaced.
Engineering a RAG that can forget: the deletion propagation pattern
This is the pattern we implement in our own RAG builds. It costs a few design decisions at ingestion time and turns an erasure request from a search project into a keyed operation.
Lineage before anything
Every artifact the pipeline creates carries the identifier of its source: source_id stamped on chunks, on vector metadata, on log lines, on cache entries. Beside it, an identity map connects people to the documents that mention them, maintained at ingestion while the knowledge is fresh. With those two structures, “delete everything about this person” compiles into a set of keyed lookups. Without them, the first real deletion request begins with an unbounded search through your own systems — the expensive end of the retrofit curve, where rebuilding embeddings sits.
One request, many acknowledgements
Deletion runs as an orchestrated job, and the job is only done when every store has answered. The sequence we use: pause ingestion for the affected sources, delete chunks by key, delete vectors by metadata filter, then verify the physical cleanup rather than trusting the API’s return code — trigger or await the tombstone purge and confirm it ran. Invalidate the caches. Redact or expire the log entries. Append the identifiers to the re-deletion list that runs after any backup restore. Notify downstream processors. Each stage acknowledges or retries; failures land in a dead-letter queue that pages someone, because a silent partial deletion is a certification you can’t stand behind. The whole run fits inside the statutory window with room to spare.
Interactive · Pattern · Deletion propagation
An erasure request compiled into keyed operations — select a stage to read what it does
Resolve lineage
01Resolve lineage
Keyed deletion setThe identity map turns “this person” into source_ids; chunks, vectors, logs and cache keys all carry those ids from ingestion
01Resolve lineage
Keyed deletion setThe identity map turns “this person” into source_ids; chunks, vectors, logs and cache keys all carry those ids from ingestion
All eight stages
01Resolve lineageArtifact: Keyed deletion set
The identity map turns “this person” into source_ids; chunks, vectors, logs and cache keys all carry those ids from ingestion
02Pause ingestion
Affected sources stop flowing so the pipeline can't re-create what it's deleting
03Delete chunks & vectorsArtifact: Cleanup confirmation
Delete by key and by metadata filter — then verify physical cleanup instead of trusting the return code; await the tombstone purge
04Invalidate caches
Semantic cache entries derived from the deleted sources are dropped, not left to expire
05Redact logsArtifact: Redaction record
Prompt and completion entries carrying the passages are redacted or expired inside the retention window
06Append re-delete listArtifact: Restore hook
Identifiers join the list that runs after any backup restore, so certified deletions stay deleted
07Notify processorsArtifact: Vendor acknowledgements
Embedding and model providers are recipients too — the request propagates to their retention surface
08Emit receiptArtifact: Erasure receipt
Identifiers, stores, timestamps, job hash, key-destruction proof — signed, holding facts about the deletion and nothing from inside it
The sequence Profitec implements in production RAG builds. Stage order matters: lineage makes every later stage a keyed lookup; the receipt stores facts about the deletion and never the data itself.
Crypto-shredding for the stores you can’t purge
Some stores resist physical deletion — append-only logs, snapshot chains, cold archives. For those, encrypt per source or per epoch and make key destruction the deletion primitive: destroy the key and every copy, including the ones in old snapshots and filesystem free pages, becomes unreadable at once. The ghost-vectors researchers reached the same conclusion from the attack side — their epoch key rotation scheme cut recovery of deleted records to 0% at a cost of 0.005 milliseconds per record, while generating cryptographically signed proof of erasure. Deletion this way produces evidence by construction.
Receipts, never residue
The erasure log records facts about the deletion and nothing from inside it: which identifiers, which stores, which timestamps, the job hash, the key-destruction proof. Signed, bundled, and ready for whoever asks — a regulator, an enterprise buyer’s security review, your own incident response. This is the same evidence bar we describe in Security & Controls: the claim “we deleted it” backed by an artifact rather than an assurance.
The vendor edge
A RAG pipeline exports data with every API call. The embedding provider and the model provider are recipients under Article 19, which makes their retention windows part of your erasure surface: know how long prompts persist, whether zero-retention modes exist for your tier, what the training-use default is, and how subprocessor deletion is handled. Put deletion SLAs in the contract and propagation of erasure requests in the runbook. A pipeline that can prove deletion internally while its API partner holds thirty days of prompt history has proven half of something.
A 30-minute self-test
Ten questions. Each maps to a store or a control from this article, and each has a yes or a no.
- 01
Can you name every store that holds a copy of a customer's data after ingestion?
- 02
Does a mapping exist from a person to the documents that mention them?
- 03
Does every chunk and vector carry a source_id you could delete by?
- 04
When vectors are deleted, does anyone verify the physical cleanup completed?
- 05
Do prompt and completion logs have a retention limit and a redaction path?
- 06
Does a deletion event invalidate the semantic cache?
- 07
Is backup retention documented, and does a re-deletion list run after restores?
- 08
Do you know your embedding and LLM providers' retention windows, and whether zero-retention is available?
- 09
Does a completed deletion produce a receipt you could show an auditor?
- 10
Is fine-tuning on personal data either excluded or logged record-by-record?
Seven or more honest yes answers puts you ahead of most production deployments we’ve reviewed. Three or fewer means the next erasure request sets your roadmap for you.
Interactive · Diagnostic · Ten controls
Toggle what's true in your deployment — the needle moves as you go
Not yet assessed
Toggle the statements below that are true for your deployment — the needle moves as you go.
Nothing here is stored or sent.
A self-assessment aid, not a legal test. Scoring mirrors the article: seven or more is ahead of most production deployments we've reviewed; three or fewer means the next erasure request sets your roadmap.
If you run a RAG in production
Inventory the six stores this week; the list is short and the findings rarely are. Start stamping lineage on new ingestion today, since it costs a metadata field now and a full re-embedding later. Choose crypto-shredding for the stores you’ll never purge physically. And write your first erasure receipt before anyone asks for one — the format matters less than the habit, and the habit is what an auditor reads as maturity.
A RAG system that can prove what it forgot is rarer than one that can explain what it knows. The first is becoming the more valuable of the two.
Frequently asked questions
Are vector embeddings personal data?
Usually yes, whenever they relate to an identifiable person. Embeddings link back to individuals through their metadata and source chunks, inversion techniques can reconstruct readable text from them, and the Dutch DPA's Clearview decision treated derived biometric codes as data whose deletion could be ordered. The safe engineering assumption is that your vector index is a personal data store.
Does a deletion request actually reach my vector database?
Yes. GDPR Article 17 and the equivalent Israeli provisions apply to personal data wherever it sits, including derived representations. The Israeli PPA's draft AI guidance states the law covers information inferred or derived from personal data, and the CNIL confirms rights apply to models and systems that aren't anonymous.
How fast does erasure have to happen?
GDPR requires action without undue delay, in practice within a month of a valid request, with limited extensions. Live systems should be cleared inside that window. Backups may expire on a documented retention schedule, provided restores trigger re-deletion.
Can data be deleted from a fine-tuned model?
Reliably, no. Retraining without the data works at full cost. Machine unlearning remains research-grade — 2026 studies show unlearned information is often suppressed rather than erased and can be recovered through light fine-tuning. Output filtering is accepted by regulators only while it demonstrably can't be circumvented.
Is a soft delete in the vector store enough?
No. Soft-deleted embeddings remain physically on disk until background cleanup runs, and current research reconstructed deleted records from HNSW indexes with up to 99% identity accuracy. Verify physical cleanup, or use crypto-shredding so key destruction makes residual bytes unreadable.
What about data in backups?
Backups run on a documented, finite retention schedule. Israeli PPA guidance extends disposal duties to backup systems and decommissioned equipment explicitly. The operational requirement: a re-deletion list that runs after every restore, so certified deletions stay deleted.
Next step
Could your AI stack prove a deletion tomorrow?
A focused review maps every store holding personal data in your retrieval pipeline, scores the ten controls above, and leaves you with a deletion runbook and your first erasure receipt template.
Where this connects
Primary sources & further reading
- EDPB — Opinion 28/2024 on AI models and personal data (17 December 2024)
- IAPP — analysis of Opinion 28/2024
- CNIL — Ensuring and facilitating the exercise of data subjects' rights (AI how-to sheets)
- CNIL — AI system development: recommendations to comply with the GDPR
- Autoriteit Persoonsgegevens — Clearview AI fine and orders (decision 16 May 2024)
- GDPRhub — AP (The Netherlands) v. Clearview, deletion order summary
- DLA Piper — GDPR Fines and Data Breach Survey, January 2026
- Ghost Vectors: Soft-Deleted Embeddings Remain Reconstructible in HNSW Vector Databases (arXiv, June 2026)
- Unlearning Isn't Deletion: Investigating Reversibility of Machine Unlearning in LLMs (ICML 2026)
- Awesome LLM Unlearning — running bibliography
- Weaviate — Deployment FAQ: deletion and tombstones
- Weaviate — Vector index configuration: tombstone cleanup parameters
- Israeli PPA — draft guidance on AI systems (coverage: Arnon, Tadmor-Levy)
- Israeli PPA — draft guidance on AI systems (coverage: Gornitzky)
- Israeli PPA — draft DPO guidelines, data disposal incl. backups (coverage: Pearl Cohen)
- Are AI embeddings personal data? (UK GDPR analysis)
This article is an engineering overview, not legal advice. Regulatory positions, vendor retention terms, and the state of unlearning research change; the page is reviewed against the primary sources above. Last fact-checked 10 August 2026.
