# Cursor's apply model unexpectedly converts typographic quotes and apostrophes on existing code

**URL:** <https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151>\
**Category:** Bug Reports\
**Created:** [February 12, 2025, 3:07am UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151 "2025-02-12T03:07:40Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![jchase](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/jchase/32/1533_2.png) [@jchase](https://forum.cursor.com/u/jchase)\
**Post date:** [February 12, 2025, 3:07am UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/1 "2025-02-12T03:07:40Z")

</div>

I’m having a fairly major problem with Cursor’s apply model using Composer agent mode for any model that supports agent mode.

**Steps to reproduce:**

1. Ask an agent model to make any change to a file containing typographic quotes

**Expected:**  
The changes made are restricted to the scope of what the agent generates, and typographic quotes are left unchanged

**Actual:**  
Cursor’s apply model changes typographic quotes (i.e. “ ‘ ” ’ ) across the entire file in completely unrelated code to straight quotes " ', having nothing to do with what I asked for, which sometimes can cause linter errors, or, when within a string, can cause an application to break:

 ![Screenshot 2025-02-11 at 9.44.13 PM](https://us1.discourse-cdn.com/cursor1/original/3X/a/8/a8575e7fb81d3af525985e91786d58cf0e5324f4.jpeg)  
 ![Screenshot 2025-02-11 at 9.44.33 PM](https://us1.discourse-cdn.com/cursor1/original/3X/2/4/24a87c5f4a5aab6b1a61d9d5be83df5b81800b17.jpeg)  
 ![Screenshot 2025-02-11 at 9.44.54 PM](https://us1.discourse-cdn.com/cursor1/original/3X/8/d/8d7a16116912cc822ab3ca230fa6a10d04f734b2.jpeg)

**Notes:**  
Adding a rule to “Rules for AI” or cursor rules doesn’t help, because it’s the apply model that applies the diffs that has the problem. Tried with Claude and o3-mini, neither produce suggested code having anything to do with the affected parts.

**Cursor version:**  
0.45.11, MacOS Sequoia

**Tell us if the issue stops you from using Cursor:**  
Not the end of the world but it is problematic - requires manually scanning and rejecting multiple lines of code just to accept a single change

---

<div class="post-metadata">

**Author:** ![mlettini](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/mlettini/32/27704_2.png) [@mlettini](https://forum.cursor.com/u/mlettini)\
**Post date:** [February 19, 2025, 9:31pm UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/2 "2025-02-19T21:31:10Z")

</div>

Having the same problem, very infuriating as of late. While Cursor is suggesting a code fix in one part of a file, it then suggests fixing all typographic quotes throughout the rest of the file too, unrelated to the code fix. This means I need to Reject it’s whole suggestion.

I’ve tried adding this Rule but it does not seem to be working:

```auto
Never suggest changes that only modify:
- Straight quotes (") to curly/smart quotes (")
- Straight quotes (') to curly/smart quotes (')
- Apostrophes (') to curly/smart apostrophes (')
Any edit that only changes these characters should be ignored completely.

```

---

<div class="post-metadata">

**Author:** ![jchase](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/jchase/32/1533_2.png) [@jchase](https://forum.cursor.com/u/jchase)\
**Post date:** [February 20, 2025, 1:54pm UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/3 "2025-02-20T13:54:35Z")

</div>

Yes unfortunately, adding a rule for it does not work because the AI chat / composer model is aware of it, but the apply model is not. The AI chat / composer model is not even suggesting those edits in the first place e.g. just uses `// ... existing code ...` but then the apply model does a diff across the entire file and that’s where the breakdown occurs

---

<div class="post-metadata">

**Author:** ![MadeUpMasters](https://avatars.discourse-cdn.com/v4/letter/m/cdc98d/32.png) [@MadeUpMasters](https://forum.cursor.com/u/MadeUpMasters)\
**Post date:** [March 1, 2025, 12:39pm UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/4 "2025-03-01T12:39:40Z")

</div>

Yeah I’m having this problem too and it’s incredibly annoying. I did not ask for a linter. This seems to be a manually applied rule that has nothing to do with the AI. Please remove it ASAP.

---

<div class="post-metadata">

**Author:** ![JoeyWangTW](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/joeywangtw/32/32394_2.png) [@JoeyWangTW](https://forum.cursor.com/u/JoeyWangTW)\
**Post date:** [March 3, 2025, 4:31pm UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/5 "2025-03-03T16:31:37Z")

</div>

+1 to this, I’ve tried adding rules but it won’t work on the apply model. It’s making the apply process a lot slower (because it’s trying to go through all the places with copy). And I have to selectively accept and reject these changes. Hope this can be fixed soon.

---

<div class="post-metadata">

**Author:** ![jchase](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/jchase/32/1533_2.png) [@jchase](https://forum.cursor.com/u/jchase)\
**Post date:** [March 5, 2025, 6:36pm UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/6 "2025-03-05T18:36:02Z")

</div>

This is becoming a really irritating issue for me especially with Yolo mode where the simplest change starts down an infinite loop of causing linter errors, which the agent then tries to fix.

---

<div class="post-metadata">

**Author:** ![naustra](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/naustra/32/35601_2.png) [@naustra](https://forum.cursor.com/u/naustra)\
**Post date:** [March 12, 2025, 12:17pm UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/7 "2025-03-12T12:17:43Z")

</div>

+1 I have to make i18n changes manually

---

<div class="post-metadata">

**Author:** ![JoeyWangTW](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/joeywangtw/32/32394_2.png) [@JoeyWangTW](https://forum.cursor.com/u/JoeyWangTW)\
**Post date:** [March 12, 2025, 2:16pm UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/8 "2025-03-12T14:16:20Z")

</div>

Is there a way to elevate this bug? I can’t convince my team to switch to cursor if this keeps happening.

---

<div class="post-metadata">

**Author:** ![jchase](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/jchase/32/1533_2.png) [@jchase](https://forum.cursor.com/u/jchase)\
**Post date:** [March 12, 2025, 2:39pm UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/9 "2025-03-12T14:39:33Z")

</div>

Yes please Cursor team, this makes agent basically unusable for any edits in these situations because the agent just gets stuck in a loop of trying to delint continuously. The only workaround is a) not using the agent and using inline edits, or b) using the agent, stopping it when it gets stuck in a loop, and then manually going through the entire file and rejecting all but the correct edit.

---

<div class="post-metadata">

**Author:** ![jchase](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/jchase/32/1533_2.png) [@jchase](https://forum.cursor.com/u/jchase)\
**Post date:** [March 19, 2025, 11:42pm UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/10 "2025-03-19T23:42:36Z")

</div>

Cursor team … anything?

---

<div class="post-metadata">

**Author:** ![JoeyWangTW](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/joeywangtw/32/32394_2.png) [@JoeyWangTW](https://forum.cursor.com/u/JoeyWangTW)\
**Post date:** [March 20, 2025, 3:36pm UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/11 "2025-03-20T15:36:15Z")

</div>

I’ve filed a support ticket but I assume they have a lot of them and not sure when they are going to get to this one. I’m either going to try a workaround where I manually replace all typographic quoates, and remove that commit later. Or I’ll try another editor, sad that this becomes a blocker and is not bing fixed.

---

<div class="post-metadata">

**Author:** ![XavierC](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/xavierc/32/39288_2.png) [@XavierC](https://forum.cursor.com/u/XavierC)\
**Post date:** [March 21, 2025, 6:58pm UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/12 "2025-03-21T18:58:01Z")

</div>

This is driving me nuts!  
What I do now is just let it do it’s thing with my apostrophes, and before build I spend at least ten minutes fixing linting errors.  
I’ll file a support ticket too, maybe they’ll take it into consideration if we are enough to complain.

---

<div class="post-metadata">

**Author:** ![jeffbowen](https://avatars.discourse-cdn.com/v4/letter/j/6a8cbe/32.png) [@jeffbowen](https://forum.cursor.com/u/jeffbowen)\
**Post date:** [March 22, 2025, 5:26am UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/13 "2025-03-22T05:26:43Z")

</div>

See [Inability to work with files with smart/curly quotes/apostrophes](https://forum.cursor.com/t/inability-to-work-with-files-with-smart-curly-quotes-apostrophes/46213). Basically Anthropic’s models seem to be incapable of outputting smart quotes/apostrophes, confirmed by Anthropic [here](https://github.com/anthropics/anthropic-sdk-typescript/issues/561#issuecomment-2442675237).

---

<div class="post-metadata">

**Author:** ![jchase](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/jchase/32/1533_2.png) [@jchase](https://forum.cursor.com/u/jchase)\
**Post date:** [April 7, 2025, 4:29pm UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/14 "2025-04-07T16:29:00Z")

</div>

Ugh yeah that explains it. I guess my bigger question tho is why does it have to be Claude for the apply model … pretty sure it didn’t used to be. (Remember when cursor-small, cursor-fast, gpt-3.5, gpt-4 & gpt-4-turbo were the only models available in Cursor?)

Although granted, there were _other_ issues with the older apply model that were arguably worse. So I guess here we are.

---

<div class="post-metadata">

**Author:** ![kyrylofranko](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/kyrylofranko/32/45632_2.png) [@kyrylofranko](https://forum.cursor.com/u/kyrylofranko)\
**Post date:** [April 9, 2025, 10:05am UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/15 "2025-04-09T10:05:26Z")

</div>

+1 to this problem.  
Any resolution or ways to avoid this behavior so far?

---

<div class="post-metadata">

**Author:** ![IvoryTower](https://avatars.discourse-cdn.com/v4/letter/i/e8c25b/32.png) [@IvoryTower](https://forum.cursor.com/u/IvoryTower)\
**Post date:** [May 30, 2025, 1:07am UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/17 "2025-05-30T01:07:15Z")

</div>

I am also having this problem, and it makes me want to cancel my cursor subscription. Why hasn’t the cursor team responded here?

---

<div class="post-metadata">

**Author:** ![MikeGreiling](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/mikegreiling/32/65205_2.png) [@MikeGreiling](https://forum.cursor.com/u/MikeGreiling)\
**Post date:** [June 20, 2025, 6:27pm UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/18 "2025-06-20T18:27:40Z")

</div>

This issue is driving me insane. I see a half dozen duplicate issues describing the same problem, it is not uncommon. It is absolutely confounding that this has not been addressed or even acknowledged by the Cursor team yet.

Does anybody have a good workaround that doesn’t involve writing a script to “undo” the changes that Cursor is making to quotes? Switching to a different model does not appear to fix this.

Am I understanding correctly there is a separate “apply model” that is different from the chat model? How does that work exactly? Can apply a different model there? One that doesn’t suffer from this bizarre issue?

---

<div class="post-metadata">

**Author:** ![kyrylofranko](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/kyrylofranko/32/45632_2.png) [@kyrylofranko](https://forum.cursor.com/u/kyrylofranko)\
**Post date:** [June 21, 2025, 12:02pm UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/19 "2025-06-21T12:02:08Z")

</div>

Any updates? The issue still persists

---

<div class="post-metadata">

**Author:** ![tsdbrown](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/tsdbrown/32/67789_2.png) [@tsdbrown](https://forum.cursor.com/u/tsdbrown)\
**Post date:** [July 2, 2025, 9:59am UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/20 "2025-07-02T09:59:14Z")

</div>

+1 for a fix on this 🙏

---

<div class="post-metadata">

**Author:** ![MikeGreiling](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/mikegreiling/32/65205_2.png) [@MikeGreiling](https://forum.cursor.com/u/MikeGreiling)\
**Post date:** [July 10, 2025, 5:16pm UTC](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151/21 "2025-07-10T17:16:51Z")

</div>

So, I have some more context to give here. This is (as mentioned previously) a bug specifically with Claude. Claude does not like curly quotes, and I’ve encountered the same issues when using Claude Code.

_However_, I do think that the Cursor team could do more to address this issue on their end. When editing with Claude Code, I _do not_ have the issue of a quote on line 547 of a file being changed when the model makes a change up on line 3. It seems the CC agent will apply file writes in a more targeted way and not touch the entire file. Perhaps Cursor could do the same? This would stem the bleeding quite a bit.

[Next page](https://forum.cursor.com/t/cursors-apply-model-unexpectedly-converts-typographic-quotes-and-apostrophes-on-existing-code/50151.md?page=2)
