[GH-ISSUE #15] [BUG] Missing some Header from Request #13

Closed
opened 2026-03-03 19:10:54 +03:00 by kerem · 9 comments
Owner

Originally created by @NghiaTranUIT on GitHub (Oct 28, 2020).
Original GitHub issue: https://github.com/ProxymanApp/atlantis/issues/15

Originally assigned to: @NghiaTranUIT on GitHub.

Description

For some reason, our swizzle method could not get the following request:

  • Accept-Language
  • User-Agent
  • Accept-Encoding

Research shows that three HTTP Headers are appending at the very end before the request is executed from URL Session.

Begel is not able to record it too, but FLEX does. We should find a way to fix it 👍

Originally created by @NghiaTranUIT on GitHub (Oct 28, 2020). Original GitHub issue: https://github.com/ProxymanApp/atlantis/issues/15 Originally assigned to: @NghiaTranUIT on GitHub. ### Description For some reason, our swizzle method could not get the following request: - Accept-Language - User-Agent - Accept-Encoding Research shows that three HTTP Headers are appending at the very end before the request is executed from URL Session. Begel is not able to record it too, but FLEX does. We should find a way to fix it 👍
kerem 2026-03-03 19:10:54 +03:00
  • closed this issue
  • added the
    Done
    bug
    labels
Author
Owner

@Sherlouk commented on GitHub (Feb 23, 2021):

Hey Nghia 👋

I see this is listed as "Done" but unsure if it's actually fixed? Maybe a regression in the version I'm using?

Request Header: []

Response Header: [Atlantis.Header(key: "Strict-Transport-Security", value: "max-age=31536000; includeSubDomains"), Atlantis.Header(key: "Server", value: "nginx"), Atlantis.Header(key: "Content-Type", value: "text/html; charset=UTF-8"), Atlantis.Header(key: "Content-Length", value: "31767"), Atlantis.Header(key: "x-content-type-options", value: "nosniff"), Atlantis.Header(key: "Cache-Control", value: "public, max-age=10, s-maxage=30"), Atlantis.Header(key: "Vary", value: "Accept-Encoding"), Atlantis.Header(key: "Content-Encoding", value: "gzip"), Atlantis.Header(key: "x-xss-protection", value: "1; mode=block"), Atlantis.Header(key: "Date", value: "Tue, 23 Feb 2021 20:30:00 GMT")]

As it stands the lists above show all of the request/response headers I'm receiving but User-Agent is not one (and is one that I would like!)

Atlantis v1.8.0 via Swift Package Manager in "transport-less mode"

        Atlantis.setDelegate(self)
        Atlantis.setEnableTransportLayer(false)
        Atlantis.start()
<!-- gh-comment-id:784491015 --> @Sherlouk commented on GitHub (Feb 23, 2021): Hey Nghia 👋 I see this is listed as "Done" but unsure if it's _actually_ fixed? Maybe a regression in the version I'm using? ``` Request Header: [] Response Header: [Atlantis.Header(key: "Strict-Transport-Security", value: "max-age=31536000; includeSubDomains"), Atlantis.Header(key: "Server", value: "nginx"), Atlantis.Header(key: "Content-Type", value: "text/html; charset=UTF-8"), Atlantis.Header(key: "Content-Length", value: "31767"), Atlantis.Header(key: "x-content-type-options", value: "nosniff"), Atlantis.Header(key: "Cache-Control", value: "public, max-age=10, s-maxage=30"), Atlantis.Header(key: "Vary", value: "Accept-Encoding"), Atlantis.Header(key: "Content-Encoding", value: "gzip"), Atlantis.Header(key: "x-xss-protection", value: "1; mode=block"), Atlantis.Header(key: "Date", value: "Tue, 23 Feb 2021 20:30:00 GMT")] ``` As it stands the lists above show all of the request/response headers I'm receiving but User-Agent is not one (and is one that I would like!) Atlantis v1.8.0 via Swift Package Manager in "transport-less mode" ``` Atlantis.setDelegate(self) Atlantis.setEnableTransportLayer(false) Atlantis.start() ```
Author
Owner

@archcorsair commented on GitHub (Nov 3, 2021):

I'm currently experiencing this issue.
For example: User-Agent is being stripped when I use Atlantis, but when I do a manual proxy it is included.

<!-- gh-comment-id:958468133 --> @archcorsair commented on GitHub (Nov 3, 2021): I'm currently experiencing this issue. For example: `User-Agent` is being stripped when I use Atlantis, but when I do a manual proxy it is included.
Author
Owner

@VaslD commented on GitHub (Aug 27, 2025):

Any update on this? With Proxyman app version 5.23.1 (52301) and Atlantis 1.28.0, Accept-Language is missing from captured traffic.

<!-- gh-comment-id:3227945378 --> @VaslD commented on GitHub (Aug 27, 2025): Any update on this? With Proxyman app version 5.23.1 (52301) and Atlantis 1.28.0, `Accept-Language` is missing from captured traffic.
Author
Owner

@NghiaTranUIT commented on GitHub (Aug 27, 2025):

It isn't correct, @VaslD. If you can take a look at the source code, we don't remove any headers from your requests. It captures all headers and sent to Proxyman to preview.

If you don't see it, it means this header doesn't exist in the first place.

<!-- gh-comment-id:3228702167 --> @NghiaTranUIT commented on GitHub (Aug 27, 2025): It isn't correct, @VaslD. If you can take a look at the source code, we don't remove any headers from your requests. It captures all headers and sent to Proxyman to preview. If you don't see it, it means this header doesn't exist in the first place.
Author
Owner

@VaslD commented on GitHub (Aug 27, 2025):

I’m absolutely certain the header does exist now. I just had a heated discussion with our server devs, and I quadruple-verified this.

Accept-Language was added by Alamofire internally; was been by Proxyman via MitM (using either Mac app or iOS app); was logged by our server, etc. It was popping up everywhere, and the only place it hasn’t been was Atlantis, for some reason.

(Alamofire encoded the value in a way that was different from what Safari did so our server caught it. There was an issue for Alamofire which put our investigation on the right track.)

I’ll see if I can get a minimal reproducible to you by tomorrow. But it’s fairly easy to test it yourself with an app that has both Alamofire and Atlantis bundled.

<!-- gh-comment-id:3229010973 --> @VaslD commented on GitHub (Aug 27, 2025): I’m absolutely certain the header does exist now. I just had a heated discussion with our server devs, and I quadruple-verified this. `Accept-Language` was added by Alamofire internally; was been by Proxyman via MitM (using either Mac app or iOS app); was logged by our server, etc. It was popping up everywhere, and the only place it hasn’t been was Atlantis, for some reason. (Alamofire encoded the value in a way that was different from what Safari did so our server caught it. There was an issue for Alamofire which put our investigation on the right track.) I’ll see if I can get a minimal reproducible to you by tomorrow. But it’s fairly easy to test it yourself with an app that has both Alamofire and Atlantis bundled.
Author
Owner

@NghiaTranUIT commented on GitHub (Aug 27, 2025):

I'm able to reproduce it, let's me investigate it why

<!-- gh-comment-id:3229399163 --> @NghiaTranUIT commented on GitHub (Aug 27, 2025): I'm able to reproduce it, let's me investigate it why
Author
Owner

@NghiaTranUIT commented on GitHub (Aug 27, 2025):

@VaslD it's fixed. Please use Atlantis v1.3.0 https://github.com/ProxymanApp/atlantis/releases/tag/1.30.0

  • Problem: When task.resume() is called, Atlantis tries to get the Request, but at this point, URLSession doesn't add some headers, like Accept-Language -> Missing it
  • Solution: I fixed it by initializing the Request when the Response is ready
<!-- gh-comment-id:3229663877 --> @NghiaTranUIT commented on GitHub (Aug 27, 2025): @VaslD it's fixed. Please use Atlantis v1.3.0 https://github.com/ProxymanApp/atlantis/releases/tag/1.30.0 - Problem: When `task.resume()` is called, Atlantis tries to get the Request, but at this point, URLSession doesn't add some headers, like Accept-Language -> Missing it - Solution: I fixed it by initializing the Request when the Response is ready
Author
Owner

@VaslD commented on GitHub (Nov 3, 2025):

Yes, from the look of it I'd say it's fixed. Thank you.

However I don't have permission to close issues. Can you mark this as resolved?

<!-- gh-comment-id:3478782578 --> @VaslD commented on GitHub (Nov 3, 2025): Yes, from the look of it I'd say it's fixed. Thank you. However I don't have permission to close issues. Can you mark this as resolved?
Author
Owner

@mikepitre commented on GitHub (Feb 11, 2026):

@NghiaTranUIT seeing this again on 1.31.0. User-Agent is being stripped when I use Atlantis, but when I do a manual proxy it is included.

I also checked our server logs and its being received there, but its not showing in Proxyman via Atlantis.

<!-- gh-comment-id:3887875473 --> @mikepitre commented on GitHub (Feb 11, 2026): @NghiaTranUIT seeing this again on 1.31.0. User-Agent is being stripped when I use Atlantis, but when I do a manual proxy it is included. I also checked our server logs and its being received there, but its not showing in Proxyman via Atlantis.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/atlantis#13
No description provided.