Proxyman distorts HTTP responses when larger than approx. 132KB in a way that Safari cannot read

Open
#2,455 2 comments 0 reactions 1 assignee View on GitHub

@NghiaTranUIT is already working on this.

Since Aug 31, 2025.

Assessment

This issue has not been assessed yet.

Description

bug

Description

I'm not sure what causes this behaviour, but if Safari gets a response via Proxyman which is larger than approx. 132KB using a simple HTTP server (that doesn't support chunked transfer or anything sophisticated) - Safari will fail to display it (or will keep trying to load it). This behaviour can be seen on Safari on Mac as well as on iPhone.
Moreover - apps on iPhone using NSURLSession behave the same - they also get an error.
Btw with Chrome or Firefox on the Mac I didn't notice this behavior.

Steps to Reproduce

  1. Download the attached files: proxyman_large_file_issue.zip. You'll see a file called miniserver.rb which implements a very simple HTTP server in ruby. In addition you'll see a file called large.txt which will be used as the response from the mini server. Place miniserver.rb and large.txt in the same folder on your Mac.
  2. Give miniserver.rb execute permissions (chmod +x miniserver.rb) and run it. It will listen on port 8080 for incoming connections.
  3. Try to access the miniserver from Safari on your Mac, by going to http://<your-mac-ip>:8080/large.txt. This should work fine - you should see the file displayed on Safari.
  4. Now configure your Mac to run via Proxyman - configure the Mac proxy server to your Mac's IP address at port 9090. Then retry to access http://<your-mac-ip>:8080/large.txt - this time you'll see Safari keeps trying to download the response.
  5. You can do the same thing from an iPhone - use your Safari on iPhone to access the mini server at http://<your-mac-ip>:8080/large.txt - it will fail the same way when the iPhone's proxy is configured to route via Proxyman, but will not fail without a proxy.
  6. Edit the file large.txt and remove one character from it. Save it and repeat the above. This time - all will work well even when routed via Proxyman.

Environment

  • App version: Proxyman 5.23.1
  • macOS version: Sequoia 15.6
  • iOS version: 17.0.2
Dominant language
No language data
Stars
7k
Forks
237
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ProxymanApp/Proxyman

All issues in ProxymanApp/Proxyman

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.