Arrow Character Parsing Breaks Code Replacement Functionality

Resolved 💬 3 comments Opened Jul 29, 2025 by mattppal Closed Jan 5, 2026

Bug Description
Claude is unable to replace arrow characters (→) and mistakes them for line prefixes

remove all →
  ⎿  ⧉ Selected 11 lines from writing/july-2025-product-updates-email.html in Cursor

⏺ Update(writing/july-2025-product-updates-email.html)
  ⎿  Error: String to replace not found in file.
     String:      1→<!DOCTYPE html><html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" 
     lang="en"><head><title></title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" 
     content="width=device-width,initial-scale=1"><!--[if mso]>
          2→    <xml><w:WordDocument xmlns:w="urn:schemas-microsoft-com:office:word"><w:DontUseAdvancedTypographyReadingMail/></w:WordDocument>
          3→    <o:OfficeDocumentSettings><o:PixelsPerInch>96</o:PixelsPerInch><o:AllowPNG/></o:OfficeDocumentSettings></xml>
          4→    <![endif]--><!--[if !mso]><!--><link 
     href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;700;900&amp;display=swap" rel="stylesheet" 
     type="text/css"><!--<![endif]--><style>
          5→    *{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#
     MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide 
     table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block 
     img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body 
     [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media 
     (max-width:620px){.social_block.desktop_hide .social-table{display:inline-block!important}.image_block 
     div.fullWidth{max-width:100%!important}.mobile_hide{display:none}.video_block 
     .sizer{max-width:none!important}.row-content{width:100%!important}.stack 
     .column{width:100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width:0;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide 
     table{display:table!important;max-height:none!important}}
          6→    
          7→    /* Email Component Classes */
          8→    .email-container { mso-table-lspace: 0; mso-table-rspace: 0; background-color: #fff; }
          9→    .email-row { mso-table-lspace: 0; mso-table-rspace: 0; }
     … +1 line (ctrl+r to see all)

⏺ I see the issue - those are line number prefixes from the Read tool output, not actual content in the file. The arrows (→) don't exist in the
  actual file content. The file is already clean without those arrows.

Environment Info

  • Platform: darwin
  • Terminal: cursor
  • Version: 1.0.61
  • Feedback ID: 0771e511-d071-4fef-a8c3-84c52b09477a

Errors

[{"error":"Error: Command failed: security find-generic-password -a $USER -w -s \"Claude Code\"\nsecurity: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.\n\n    at checkExecSyncError (node:child_process:885:11)\n    at execSync (node:child_process:957:15)\n    at i7 (file:///Users/matt/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:865:5106)\n    at file:///Users/matt/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:777:49649\n    at Q (file:///Users/matt/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:674:14420)\n    at kJ (file:///Users/matt/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:777:47087)\n    at XH (file:///Users/matt/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:777:45954)\n    at Y9 (file:///Users/matt/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:777:52275)\n    at $aA (file:///Users/matt/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:777:52433)","timestamp":"2025-07-29T01:52:20.058Z"},{"error":"Error: Request was aborted.\n    at F71._createMessage (file:///Users/matt/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:1325:7955)\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at runNextTicks (node:internal/process/task_queues:64:3)\n    at process.processTimers (node:internal/timers:509:9)","timestamp":"2025-07-29T02:23:21.571Z"}]

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗