GO TO A SECTION

↑ ↓ to navigate · Enter to openExplore all sections →
FDEInterviews logo
ICSE 2026 (SEIP)

The SWE-Bench Illusion: When State-of-the-Art LLMs Remember Instead of Reason

Given only an issue's text and the repository name, o3 named the file to fix for 76% of SWE-Bench Verified tasks, but 55% for similar tasks from other popular repositories.

Breakdown by FDE Interviews · 11 min read · Updated

About the original · 2025
AUTHORS
Liang, Garg, Zilouchian Moghaddam
FROM
Purdue University, Microsoft
PUBLISHED
Jun 2025 · ICSE 2026 (SEIP)
CITED BY
71Semantic Scholar · Nov 2026
IN THIS BREAKDOWN · 10 SECTIONS

You can read 21% of this breakdown.

01

The paper in one minute

SWE-Bench asks a model to resolve real GitHub issues in real repositories, with the project's own tests deciding success. Its Verified subset, 500 tasks from 12 Python repositories checked by human annotators, became the standard number for coding agents, with scores above 70% by mid-2025. Those repositories and their fixes are also public, and likely in the training data of the models being tested.

The authors design three tasks that should be nearly impossible without having seen the answers. File-path identification: given only the repository name and the issue text, name the file that the fix changes. Function reproduction: given the issue and a file with the changed functions removed, plus their names, write them back; success means matching the real fix word for word, which reasoning alone should rarely do. Prefix completion: given the code before a changed hunk, continue it, and check for verbatim matches.

They run these on SWE-Bench Verified and on comparison sets: 200 other SWE-Bench tasks, 217 newer issues from the same repositories, 245 tasks they built from seven other popular repositories (numpy, pandas, pytorch, scipy, celery, aiohttp, jupyter notebook), an internal C# benchmark, and a refactoring benchmark. Ten OpenAI and Anthropic models scored 60% to 76% on file paths for Verified, lower on every other set, and still clearly higher on Verified after removing issues that mention a path. Reproduced functions shared up to 34.9% of their 5-word sequences with the real fix on Verified, against at most 18% elsewhere. The authors conclude that Verified scores are partly inflated by memorization of both specific instances and these repositories.

THE IDEA, VISUALLY
NAME THE FILE FROM THE ISSUE TEXT ALONE (FIG. 8) o3 +21 Claude 4 Opus +17 Claude 4 Sonnet +18 Claude 3.7 Sonnet +15 o3-mini +22 o4-mini +17 GPT-4.1 +16 GPT-4o 2024-05 +12 GPT-4o 2024-08 +15 Claude 3.5 Sonnet +13 40% 50% 60% 70% 80% SWE-Bench Verified (500 tasks) 7 other popular repositories (245 tasks) every gap: z = 3.1 to 5.8 (our two-proportion tests) REWRITE A REMOVED FUNCTION: CLAUDE 4 OPUS 5-gram overlap with the real fix (Fig. 10) Verified 34.9% other SWE-Bench 28.7% newer, same repos 18.2% other repositories 13.9% RefactorBench 18.1% C# set 16.4% 2.5x the overlap on Verified as on other repositories, from a function name and the file. Prefix completion reproduced at least one fix hunk verbatim for 11.7% to 31.6% of Verified tasks. Caveats: Verified issues were picked for clarity, and the text's ranges and 'same ordering for every model' do not match Figure 8 (5 exceptions). arXiv 2506.12286, Purdue University and Microsoft
Left: share of tasks where each of ten models names the file to change using only the issue text and the repository name (Figure 8). Every model scores higher on SWE-Bench Verified (dark) than on tasks from seven other popular Python repositories (light); the gap runs 12 to 22 points and is statistically clear for each model (our tests). Right: when asked to rewrite a removed function from its name and file alone, Claude 4 Opus's output shares 34.9% of its 5-word sequences with the real fix on Verified, against 18.2% on newer issues from the same repositories and 13.9% outside them (Figure 10).
Research notes: the problem, approach and results
76% vs 55%

o3 naming the file to fix from issue text alone, SWE-Bench Verified vs outside repositories (Figure 8)

34.9% vs 13.9%

Claude 4 Opus 5-gram overlap with the real fix, Verified vs outside repositories (Figure 10)

31.6%

Verified instances where Claude 4 Opus produced a fix hunk verbatim from the preceding code alone (Table 3)

THE PROBLEM

SWE-Bench Verified scores above 70% are read as evidence that models can fix real software issues. But the benchmark's 500 tasks come from 12 public Python repositories whose code, issues and fixes are likely in training data, so high scores may partly reflect memory.

THE IDEA

Remove the information a model would need to reason: ask for the file to change from the issue text alone, ask for a removed function from its name alone, and ask for the next lines of a fix from the preceding code. Compare results on Verified with the rest of SWE-Bench, newer issues, other repositories and other benchmarks.

THE RESULT

Ten models named the right file for 60% to 76% of Verified tasks with no repository access, and did worse on every other set. Reproduced functions overlapped the real fixes about twice as much on Verified as elsewhere, and 12% to 32% of Verified instances drew at least one verbatim match from the preceding code alone.

02

Why it matters to an FDE

Treat public coding-benchmark scores as an upper bound. A model that has seen a repository's history can locate and patch bugs there partly from memory. A customer's private codebase offers no such help, so expect lower performance there than on SWE-Bench Verified.

Test on the customer's own repositories. Pick recently closed issues from the customer's code, after the model's training cutoff, and score the agent with their tests. That is the number to put in a proposal.

Use the paper's probes as cheap checks. Asking for the file path from the issue text alone costs one call per task and needs no execution environment. If a model does much better on one benchmark than on comparable fresh tasks, distrust that benchmark for that model.

Compare like with like. The paper's sets differ in more than freshness: Verified issues were selected by annotators for being clearly written, and refactoring tasks have 15-token descriptions. When you build comparison sets for a customer, match on issue quality and repository size, or the gap will mix memory with difficulty.

Mind the curated subset. The highest scores came on the most widely used, most discussed subset. Any heavily reported test set accumulates exposure over time.

THE FULL BREAKDOWN

Understand the mechanism. Try it on a real problem.

Unlock this breakdown and 290 more papers.

Premium opens every paper in full, plus every answer, concept, course and guide on the site. One payment for six months of access.

6 months · One payment · No auto-renewal

Get Premium · ₹2,000 / $25
  • ◇1 architecture diagram
  • </>1 runnable code experiment
  • ▦2 results tables
  • ?5 interview questions with answers
  1. 03Key takeaways

    The three probes, comparison sets, results by set and model, two kinds of memory, caveats

    Free account
  2. 04How it works

    Each probe, its prompt, the sets, filtering, the models and the metrics

    Premium
  3. 05The numbers that matter

    Figures 8, 9 and 10 by model, Table 3, set sizes and the overlap difference analysis

    Premium
  4. 06Try it yourself

    Test each model's gap, check the stated ranges and ordering, and recheck the tables

    Premium
  5. 07Where it breaks

    Probes are not the benchmark, comparison sets differ, no causal test of training data, and slips

    Premium
  6. 08Using it on a deployment

    Build a private issue benchmark, run the path probe as a contamination check, and set expectations

    Premium
  7. 09Interview angles

    Five questions this paper prepares you for, with answer hints

    Premium
Back to the paper library →