Severe pasting issues, code gets mangled into markdown

Hi,

Since the last two days, when I paste complex code into chatgpt, the LLM itself receives a mangled version of my text
Here is one especially annoying and short example

Creating CAB file.  Please wait...
---
MakeCAB Report: Sat Aug 08 19:50:13 2026

Total files:              4
Bytes before:     2,432,599
Bytes after:      2,349,850
After/Before:            96.60% compression
Time:                     0.68 seconds ( 0 hr  0 min  0.68 sec)
Throughput:            3508.99 Kb/second
---
Creating the package...
Done!

This text becomes

And that’s not all !

For example I paste this command into chatgpt

VMID="$(pvesh get /cluster/nextid)"; NAME="win10-$VMID" MAC=DE:AD:BE:EF:42:70 DISK=64 RAM=6/25% CORE=90% OS=win10 ISO=win10u,virtcd FIRMWARE=efi MACHINE=q35 AGENT=yes STORAGE="$(pvesm status --content images --enabled 1 | awk 'NR>1&&$3=="active"{print $1;exit}')" BRIDGE=vmbr0 FIREWALL=no CACHE=writeback VGA= AUDIO=yes BOOT='virtio0;ide2' START=yes; DO_CREATE=yes; VMID="${VMID:-$(pvesh get /cluster/nextid)}"; MAC="${MAC:-DE:AD:BE:EF:42:70}"; DISK="${DISK:-64}"; RAM="${RAM:-6}"; CORE="${CORE:-90%}"; OS="${OS:-win10}"; NAME="${NAME:-$OS-$VMID}"; FIRMWARE="${FIRMWARE:-efi}"; MACHINE="${MACHINE:-q35}"; AGENT="${AGENT:-yes}"; STORAGE="${STORAGE:-$(pvesm status --content images --enabled 1 | awk 'NR>1&&$3=="active"{print $1;exit}')}"; BRIDGE="${BRIDGE:-vmbr0}"; FIREWALL="${FIREWALL:-no}"; CACHE="${CACHE:-writeback}"; AUDIO="${AUDIO:-yes}"; BOOT="${BOOT:-virtio0;ide2}"; START="${START:-yes}"; if ! command -v dialog >/dev/null; then read -r -p "dialog is not installed. Install it now? [Y/n] " DIALOG_INSTALL; case "${DIALOG_INSTALL:-Y}" in [Yy]*) apt-get update && apt-get install -y dialog || echo "WARNING: dialog installation failed; continuing without UI." ;; esac; fi; if command -v dialog >/dev/null; then TMP="$(mktemp)"; if dialog --clear --title "Create Proxmox VM" --ok-label "Create" --cancel-label "Cancel" --output-fd 3 --form "Review or edit VM settings" 24 90 19 "Name:" 1 2 "$NAME" 1 24 55 0 "MAC:" 2 2 "$MAC" 2 24 55 0 "Disk (GB):" 3 2 "$DISK" 3 24 55 0 "RAM:" 4 2 "$RAM" 4 24 55 0 "Core:" 5 2 "$CORE" 5 24 55 0 "OS:" 6 2 "$OS" 6 24 55 0 "ISO:" 7 2 "$ISO" 7 24 55 0 "Firmware:" 8 2 "$FIRMWARE" 8 24 55 0 "Machine:" 9 2 "$MACHINE" 9 24 55 0 "Agent:" 10 2 "$AGENT" 10 24 55 0 "Storage:" 11 2 "$STORAGE" 11 24 55 0 "Bridge:" 12 2 "$BRIDGE" 12 24 55 0 "Firewall:" 13 2 "$FIREWALL" 13 24 55 0 "Cache:" 14 2 "$CACHE" 14 24 55 0 "VGA:" 15 2 "$VGA" 15 24 55 0 "Audio:" 16 2 "$AUDIO" 16 24 55 0 "Boot:" 17 2 "$BOOT" 17 24 55 0 "VMID:" 18 2 "$VMID" 18 24 55 0 "Start:" 19 2 "$START" 19 24 55 0 3>"$TMP"; then mapfile -t F < "$TMP"; NAME="${F[0]}"; MAC="${F[1]}"; DISK="${F[2]}"; RAM="${F[3]}"; CORE="${F[4]}"; OS="${F[5]}"; ISO="${F[6]}"; FIRMWARE="${F[7]}"; MACHINE="${F[8]}"; AGENT="${F[9]}"; STORAGE="${F[10]}"; BRIDGE="${F[11]}"; FIREWALL="${F[12]}"; CACHE="${F[13]}"; VGA="${F[14]}"; AUDIO="${F[15]}"; BOOT="${F[16]}"; VMID="${F[17]}"; START="${F[18]}"; else DO_CREATE=no; fi; rm -f "$TMP"; clear; [ "$DO_CREATE" = yes ] || echo "CANCELLED: No VM was created."; fi; if [ "$DO_CREATE" = yes ]; then if qm create "$VMID" --name "${NAME:-${OS:-win10}-$VMID}" --machine "$(if [ "${MACHINE:-q35}" = 440 ]; then printf pc; else printf q35; fi)" --ostype "${OS:-win10}" --cpu host --cores "$(awk -v r="${CORE:-90%}" -v h="$(nproc)" 'BEGIN{n=split(r,a,"/");for(i=1;i<=n;i++){if(a[i]~/%$/){sub(/%$/,"",a[i]);p=a[i]+0}else if(a[i]!="")m=a[i]+0}v=p?int(h*p/100):0;c=(v>m?v:m);if(c<1)c=1;if(c>h)c=h;print c}')" --memory "$(awk -v r="${RAM:-6}" 'BEGIN{n=split(r,a,"/");for(i=1;i<=n;i++){if(a[i]~/%$/){sub(/%$/,"",a[i]);p=a[i]+0}else if(a[i]!="")m=(a[i]+0)*1024}}/^MemTotal:/{v=int($2*p/102400);print (v>m?v:m);exit}' /proc/meminfo)" --virtio0 "${STORAGE}:${DISK:-64},cache=${CACHE:-writeback},discard=on,iothread=1" $(IDE=2; if [[ ",${ISO:-}," == *,win10u,* ]]; then printf '%s\n' "--ide$IDE" 'local:iso/Win10_22H2_EnglishInternational_x64.unattended.latest.iso,media=cdrom'; IDE=$((IDE+1)); fi; if [[ ",${ISO:-}," == *,win10,* ]]; then printf '%s\n' "--ide$IDE" 'local:iso/Win10_22H2_EnglishInternational_x64.unattended.latest.iso,media=cdrom'; IDE=$((IDE+1)); fi; if [[ ",${ISO:-}," == *,win10e,* ]]; then printf '%s\n' "--ide$IDE" 'local:iso/Win10_22H2_English_x64.iso,media=cdrom'; IDE=$((IDE+1)); fi; if [[ ",${ISO:-}," == *,virtcd,* ]]; then printf '%s\n' "--ide$IDE" 'local:iso/virtio-win-latest.iso,media=cdrom'; IDE=$((IDE+1)); fi) --net0 "virtio=${MAC:-DE:AD:BE:EF:42:70},bridge=${BRIDGE:-vmbr0},firewall=$(if [ "${FIREWALL:-no}" = yes ]; then printf 1; else printf 0; fi)" --boot "order=${BOOT:-virtio0;ide2}" $(if [ "${AUDIO:-yes}" = yes ]; then printf '%s\n' --audio0 device=ich9-intel-hda,driver=none; fi) $(if [ "${AUDIO:-yes}" = spice ]; then printf '%s\n' --audio0 device=ich9-intel-hda,driver=spice; fi) $(if [ "${AGENT:-yes}" = yes ]; then printf '%s\n' --agent enabled=1,fstrim_cloned_disks=1; fi) $(if [ -n "${VGA:-}" ]; then if [ "$VGA" = spice ]; then printf '%s\n' --vga qxl; else printf '%s\n' --vga "$VGA"; fi; fi) $(if [ "${FIRMWARE:-efi}" = efi ]; then printf '%s\n' --bios ovmf --efidisk0 "$STORAGE:4,efitype=4m,pre-enrolled-keys=1"; fi) $(if [ "${FIRMWARE:-efi}" = bios ]; then printf '%s\n' --bios seabios; fi); then if [ "${START:-yes}" = yes ]; then if qm start "$VMID"; then echo "SUCCESS: VM $VMID named ${NAME:-${OS:-win10}-$VMID} was created on $STORAGE and started successfully"; else RC=$?; echo "WARNING: VM $VMID named ${NAME:-${OS:-win10}-$VMID} was created on $STORAGE but failed to start with exit code $RC" >&2; false; fi; else echo "SUCCESS: VM $VMID named ${NAME:-${OS:-win10}-$VMID} was created successfully on $STORAGE and left stopped"; fi; else RC=$?; echo "ERROR: VM $VMID was not created; qm create exited with code $RC" >&2; false; fi; fi

This code is mangled AFTER pressing send

Here is from the prompt bubble

But then the LLM sees something different

c

Also please note that autoclosing every thread in 24 hours, is a great way to shut discussions down.

image

If you don’t want user to tell you how to improve the product, then just don’t have a forum at all …

Hey there @shodan I see and feel you with this. When marking a thread explicit to ChatGPT tag the thread gets closed automatically after 24 hours. The reason is, and this apply to Codex / ChatGPT Codex App too, both have their dedicated channels to interact for this kind of topics.

ChatGPT has Discord
Codex has GitHub
API has the Dev Forum

This of course has room if you mark such topics with bugs or support and not just ChatGPT in the tags.

As for the problem itself, there are two options you can try with paste the text on the prompt area:

  1. Paste the text without formatting, mouse right click paste without formatting, or Ctrl+Shift+V (Command + Shift + V on macOS) to just have plaintext
  2. Use markdown code fencing fencing for the code aspects of your prompt. This way the fenced code retains the syntax.

For now, you can also select text already in the prompt text area and you’ll see a minimal formatting toolbox for markdown that might help.

I do hope in the future there’s a more robust toolbox or a setting to work with plaintext and switch to markdown as needed. Both modes have their pros and cons for the user.

Hi,

Thanks for taking the time to answer this.

I wish to make the input box just not be markdown at all and I would like also a plain text output from the LLM at this point, fighting the markdowning/demarkdowning is become a chore lately. I’m not super into having to markdown format for the bot now, I never really got into using that syntax.

Yes I do use CTRL+SHIFT+V almost all of the time now as I discussed in a previous thread before it was also promptly closed How to disable "pasted text documents" ? They are unreliable and super annoying

Also the small text box that can’t be manually resized in height or width doesn’t make things any easier !

As for autoclosing the thread so quickly as though they were taxi fare counters I don’t see the point. I don’t have a discord and I’m not getting one, even if I did, it’s impossible to search anything on there so I don’t see why people would discuss things here since no one else can see it. Github discussion have a similar problem, even though they can technically be searched, their search tools are nearly unusable.