Sentry-cli: Sentry fails to upload debug files due to a duplicated Authorization header

Created on 17 Feb 2020  路  3Comments  路  Source: getsentry/sentry-cli

We are trying to set up a self-hosted Sentry instance. We use a prebuilt Sentry Docker image and have an nginx load balancer connected as well.

When trying to use sentry-cli to upload debug files (using upload-dif or upload-dsym), the upload always fails with a 400 error response.

The most prominent difference between the successful and the failing requests I can see is that the failing requests have a duplicated Authorization header. According to RFC 7230 this is not correct behaviour, so it's expected that some servers will reject the request.
I tried to send those requests per postman manually and I also got a 400 Bad Request when using two Authorization headers and a 200 Success when using only one.
Is this some kind of faulty setup on our end?

This is the log:

sentry-cli upload-dif ~/Downloads/dysms --log-level debug                                                                                                             
  INFO    2020-02-17 11:33:51.264996 +01:00 Loaded config from /Users/me/.sentryclirc
  DEBUG   2020-02-17 11:33:51.265314 +01:00 sentry-cli version: 1.51.0, platform: "darwin", architecture: "x86_64"
  INFO    2020-02-17 11:33:51.265328 +01:00 sentry-cli was invoked with the following command line: "sentry-cli" "upload-dif" "/Users/me/Downloads/dsyms" "--log-level" "debug"
  DEBUG   2020-02-17 11:33:51.265875 +01:00 request GET https://sentry.backend.dev.myProject.otc/api/0/organizations/sentry/chunk-upload/
  DEBUG   2020-02-17 11:33:51.265901 +01:00 using token authentication
  DEBUG   2020-02-17 11:33:51.265914 +01:00 retry number 0, max retries: 0
  DEBUG   2020-02-17 11:33:51.480542 +01:00 > GET /api/0/organizations/sentry/chunk-upload/ HTTP/1.1
  DEBUG   2020-02-17 11:33:51.480591 +01:00 > Host: sentry.backend.dev.myProject.otc
  DEBUG   2020-02-17 11:33:51.480604 +01:00 > Accept: */*
  DEBUG   2020-02-17 11:33:51.480614 +01:00 > Connection: TE
  DEBUG   2020-02-17 11:33:51.480623 +01:00 > TE: gzip
  DEBUG   2020-02-17 11:33:51.480632 +01:00 > User-Agent: sentry-cli/1.51.0
  DEBUG   2020-02-17 11:33:51.481285 +01:00 > Authorization: Bearer f0c07cb7***
  DEBUG   2020-02-17 11:33:51.540453 +01:00 < HTTP/1.1 200 OK
  DEBUG   2020-02-17 11:33:51.540516 +01:00 < Server: nginx
  DEBUG   2020-02-17 11:33:51.540540 +01:00 < Date: Mon, 17 Feb 2020 10:33:51 GMT
  DEBUG   2020-02-17 11:33:51.540563 +01:00 < Content-Type: application/json
  DEBUG   2020-02-17 11:33:51.540606 +01:00 < Content-Length: 221
  DEBUG   2020-02-17 11:33:51.540626 +01:00 < Connection: keep-alive
  DEBUG   2020-02-17 11:33:51.540642 +01:00 < X-XSS-Protection: 1; mode=block
  DEBUG   2020-02-17 11:33:51.540658 +01:00 < Content-Language: en
  DEBUG   2020-02-17 11:33:51.540674 +01:00 < X-Content-Type-Options: nosniff
  DEBUG   2020-02-17 11:33:51.540691 +01:00 < Vary: Accept-Language, Cookie
  DEBUG   2020-02-17 11:33:51.540706 +01:00 < Allow: GET, POST, HEAD, OPTIONS
  DEBUG   2020-02-17 11:33:51.540722 +01:00 < X-Frame-Options: deny
  DEBUG   2020-02-17 11:33:51.540738 +01:00 < Cache-Control: no-cache
  DEBUG   2020-02-17 11:33:51.540804 +01:00 response status: 200
  DEBUG   2020-02-17 11:33:51.540827 +01:00 body: {"maxFileSize": 2147483648, "hashAlgorithm": "sha1", "concurrency": 4, "chunkSize": 8388608, "maxRequestSize": 33554432, "url": "/api/0/organizations/sentry/chunk-upload/", "chunksPerRequest": 64, "compression": ["gzip"]}
  DEBUG   2020-02-17 11:33:51.542449 +01:00 searching location /Users/me/Downloads/dysms
  DEBUG   2020-02-17 11:33:51.542873 +01:00 searching zip archive /Users/me/Downloads/dysms/myProject.dsym.zip
  DEBUG   2020-02-17 11:33:53.723583 +01:00 trying to parse dif myProject.dsym
  DEBUG   2020-02-17 11:33:53.723623 +01:00 Ctx: Ctx { container: Big, le: Little }  (from goblin)
  DEBUG   2020-02-17 11:33:53.723650 +01:00 Mach-o header: Header { magic: 0xfeedfacf, cputype: 16777223, cpusubtype: 0x3, filetype: "DSYM", ncmds: 7, sizeofcmds: 3288, flags: 0x0, reserved: 0x0 }  (from goblin)
  DEBUG   2020-02-17 11:33:53.723675 +01:00 0 - LoadCommand { offset: 32, command: Uuid(UuidCommand { cmd: 27, cmdsize: 24, uuid: [22, 63, 90, 126, 54, 113, 52, 180, 143, 220, 186, 184, 252, 6, 193, 204] }) }  (from goblin)
  DEBUG   2020-02-17 11:33:53.723701 +01:00 1 - LoadCommand { offset: 56, command: Symtab(SymtabCommand { cmd: 2, cmdsize: 24, symoff: 4096, nsyms: 81654, stroff: 1310560, strsize: 11577294 }) }  (from goblin)
  DEBUG   2020-02-17 11:33:53.723719 +01:00 2 - LoadCommand { offset: 80, command: Segment64(SegmentCommand64 { cmd: 25, cmdsize: 72, segname: [95, 95, 80, 65, 71, 69, 90, 69, 82, 79, 0, 0, 0, 0, 0, 0], vmaddr: 0, vmsize: 4294967296, fileoff: 0, filesize: 0, maxprot: 0, initprot: 0, nsects: 0, flags: 0 }) }  (from goblin)
  DEBUG   2020-02-17 11:33:53.723737 +01:00 3 - LoadCommand { offset: 152, command: Segment64(SegmentCommand64 { cmd: 25, cmdsize: 792, segname: [95, 95, 84, 69, 88, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], vmaddr: 4294967296, vmsize: 18845696, fileoff: 0, filesize: 0, maxprot: 7, initprot: 5, nsects: 9, flags: 0 }) }  (from goblin)
  DEBUG   2020-02-17 11:33:53.723754 +01:00 4 - LoadCommand { offset: 944, command: Segment64(SegmentCommand64 { cmd: 25, cmdsize: 1192, segname: [95, 95, 68, 65, 84, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], vmaddr: 4313812992, vmsize: 704512, fileoff: 0, filesize: 0, maxprot: 7, initprot: 3, nsects: 14, flags: 0 }) }  (from goblin)
  DEBUG   2020-02-17 11:33:53.723769 +01:00 5 - LoadCommand { offset: 2136, command: Segment64(SegmentCommand64 { cmd: 25, cmdsize: 72, segname: [95, 95, 76, 73, 78, 75, 69, 68, 73, 84, 0, 0, 0, 0, 0, 0], vmaddr: 4314517504, vmsize: 12886016, fileoff: 4096, filesize: 12883758, maxprot: 7, initprot: 1, nsects: 0, flags: 0 }) }  (from goblin)
  DEBUG   2020-02-17 11:33:53.723785 +01:00 6 - LoadCommand { offset: 2208, command: Segment64(SegmentCommand64 { cmd: 25, cmdsize: 1112, segname: [95, 95, 68, 87, 65, 82, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0], vmaddr: 4327403520, vmsize: 351641600, fileoff: 12890112, filesize: 351641425, maxprot: 7, initprot: 3, nsects: 13, flags: 0 }) }  (from goblin)
  DEBUG   2020-02-17 11:33:53.724033 +01:00 finished zip archive /Users/me/Downloads/dysms/myProject.dsym.zip
  DEBUG   2020-02-17 11:33:53.724065 +01:00 finished location /Users/me/Downloads/dysms
> Found 1 debug information file
> Prepared debug information file for upload
  DEBUG   2020-02-17 11:33:54.939143 +01:00 request POST https://sentry.backend.dev.myProject.otc/api/0/projects/sentry/myProject-desktop-client/files/difs/assemble/
  DEBUG   2020-02-17 11:33:54.939178 +01:00 using token authentication
  DEBUG   2020-02-17 11:33:54.939235 +01:00 json body: {"5c2d1b5d8becf81d382f4ae20d3b05128ad5400a":{"name":"myProject.dsym","chunks":["<some chunk IDs>"]}}
  DEBUG   2020-02-17 11:33:54.939392 +01:00 retry number 0, max retries: 5
  DEBUG   2020-02-17 11:33:54.939533 +01:00 > POST /api/0/projects/sentry/myProject-desktop-client/files/difs/assemble/ HTTP/1.1
  DEBUG   2020-02-17 11:33:54.939560 +01:00 > Host: sentry.backend.dev.myProject.otc
  DEBUG   2020-02-17 11:33:54.939565 +01:00 > Accept: */*
  DEBUG   2020-02-17 11:33:54.939570 +01:00 > Connection: TE
  DEBUG   2020-02-17 11:33:54.939574 +01:00 > TE: gzip
  DEBUG   2020-02-17 11:33:54.939596 +01:00 > User-Agent: sentry-cli/1.51.0
  DEBUG   2020-02-17 11:33:54.939660 +01:00 > Authorization: Bearer f0c07cb7***
  DEBUG   2020-02-17 11:33:54.939686 +01:00 > Content-Type: application/json
  DEBUG   2020-02-17 11:33:54.939707 +01:00 > Content-Length: 1970
  DEBUG   2020-02-17 11:33:55.009286 +01:00 < HTTP/1.1 200 OK
  DEBUG   2020-02-17 11:33:55.009349 +01:00 < Server: nginx
  DEBUG   2020-02-17 11:33:55.009373 +01:00 < Date: Mon, 17 Feb 2020 10:33:55 GMT
  DEBUG   2020-02-17 11:33:55.009394 +01:00 < Content-Type: application/json
  DEBUG   2020-02-17 11:33:55.009413 +01:00 < Content-Length: 2023
  DEBUG   2020-02-17 11:33:55.009433 +01:00 < Connection: keep-alive
  DEBUG   2020-02-17 11:33:55.009450 +01:00 < X-XSS-Protection: 1; mode=block
  DEBUG   2020-02-17 11:33:55.009467 +01:00 < Content-Language: en
  DEBUG   2020-02-17 11:33:55.009483 +01:00 < X-Content-Type-Options: nosniff
  DEBUG   2020-02-17 11:33:55.009500 +01:00 < Vary: Accept-Language, Cookie
  DEBUG   2020-02-17 11:33:55.009516 +01:00 < Allow: POST, OPTIONS
  DEBUG   2020-02-17 11:33:55.009532 +01:00 < X-Frame-Options: deny
  DEBUG   2020-02-17 11:33:55.009548 +01:00 < Cache-Control: no-cache
  DEBUG   2020-02-17 11:33:55.009597 +01:00 response status: 200
  DEBUG   2020-02-17 11:33:55.009624 +01:00 body: {"5c2d1b5d8becf81d382f4ae20d3b05128ad5400a": {"state": "not_found", "missingChunks": ["c256f1d62f3a719e0d89576795ba41b41f4d1e0a", "779b128e069c0c68d527a9b1377888523c39e9ea", "a3aac3056346ab74e552ea52867bb4bbf1774dc2", "55a52bd4d5030608826ab4a6f881731350e302c3", "a152d207deea881e18e13b06673075e713e607e2", "e00fd99dda03f88e08ea1691380946c759cd8f51", "34c89f0300fa7dbb752736f41d6794277ae3db86", "911125ef1e11e4420adb2707d82bd2e3e03d298f", "d47ef14534c2acbe9950a31d9c58f8d22e778f29", "5e3e35c234741c86a309e1a69eec9c8646314519", "50357280554ba5a85400b051c0661f132a58a03f", "5930c319104e3b8e94ae56a2c967f823e67b977b", "e32640b57872d81cd1fa8e2fafb5d09c2caf6222", "26b5f9b6104541a68b7b0625387d0fe27f33504d", "723a64f88b2d260aa57198a2e1f56e88d98e92ef", "aa73e8836deec185af635b6851b8d616edace45f", "ed2cc8a01104dd65dde59f6df7391f258020b373", "7a4a73dca6c612e3cb7b092e51583151e02ec0a3", "661db53dd0d8de438ae13beddbde26d84051309f", "87e298109a00b11f6ba712ad4ade9b7226245df1", "5c211075e1262dc8a52cdbbbd928f5b35fc90bd2", "9c5313e29ff6c24113fcf4add1dfb547a3472c7c", "2dae2bf6c785b9917b7df28112f80d116280eeec", "a41b899da49b4095154adb945280c349f30d5bd9", "cd8366124036941ab26bb94de3a7d0a82dd103f7", "39424637807d381c29fe29dfb95c347342286bac", "edddfdbdb892cf266614772a4c9a6b5361aea88b", "5718076685eb7e9c9782e78a06db341b03b65941", "4a5305942d7e324f5f3422a806988425900bbfd2", "bdb83eb44ea47f26f938bbf306f76303f2afd5d0", "9b9c6feb450151494bcb265a2c7522a7fb2bb819", "dde3d4130f87d5baad12ccf5ec1b7f63528f7a13", "8c4050c414e102764ee55fe0c7e854430ea6eb30", "017b529b65a81dd07a6d7ea57d5a881aa907770d", "522dbede96ec0aa189c07a45cf3fc288ae7e9651", "a831dbde057b3ffa69174a69900284974807ee12", "c295f6b879b4a592fbf57e165313e77f1c780e62", "42d85251354ccf98673568904bc5144273134b4a", "23204d09b5807238ccf87c840c59ba6008be8fa3", "1ec350250eb2d516d953542b26f25b78444c082f", "b609781a167f1497ebd1b8aa6c5902a4e85a5e6c", "3dddf640f8f9b5bc3245461f4b9d7ddbd0d198e9", "1ae4a4c9343669b225fa2e78abf6bb5b8bbfbe7d", "8ff80cd74e6173cf0c010be8294053a8adce0637"]}}
  INFO    2020-02-17 11:33:55.010042 +01:00 using 'gzip' compression for chunk upload
  DEBUG   2020-02-17 11:33:55.402541 +01:00 request POST https://sentry.backend.dev.myProject.otc/api/0/api/0/organizations/sentry/chunk-upload/
  DEBUG   2020-02-17 11:33:55.402678 +01:00 using token authentication
  DEBUG   2020-02-17 11:33:55.402708 +01:00 sending form data
  DEBUG   2020-02-17 11:33:55.402734 +01:00 using token authentication
  DEBUG   2020-02-17 11:33:55.402845 +01:00 retry number 0, max retries: 5
  DEBUG   2020-02-17 11:33:55.404056 +01:00 > POST /api/0/api/0/organizations/sentry/chunk-upload/ HTTP/1.1
  DEBUG   2020-02-17 11:33:55.404099 +01:00 > Host: sentry.backend.dev.myProject.otc
  DEBUG   2020-02-17 11:33:55.404123 +01:00 > Accept: */*
  DEBUG   2020-02-17 11:33:55.404143 +01:00 > Connection: TE
  DEBUG   2020-02-17 11:33:55.404193 +01:00 > TE: gzip
  DEBUG   2020-02-17 11:33:55.404315 +01:00 > User-Agent: sentry-cli/1.51.0
  DEBUG   2020-02-17 11:33:55.404866 +01:00 > Authorization: Bearer f0c07cb7***
  DEBUG   2020-02-17 11:33:55.404911 +01:00 > Authorization: Bearer f0c07cb7***
  DEBUG   2020-02-17 11:33:55.404936 +01:00 > Content-Length: 2481214
  DEBUG   2020-02-17 11:33:55.404972 +01:00 > Content-Type: multipart/form-data; boundary=------------------------7f98b35be8e792a4
  DEBUG   2020-02-17 11:33:55.431026 +01:00 < HTTP/1.1 400 Bad Request
  DEBUG   2020-02-17 11:33:55.431084 +01:00 < Server: nginx
  DEBUG   2020-02-17 11:33:55.431124 +01:00 < Date: Mon, 17 Feb 2020 10:33:55 GMT
  DEBUG   2020-02-17 11:33:55.431182 +01:00 < Content-Type: text/html
  DEBUG   2020-02-17 11:33:55.431238 +01:00 < Transfer-Encoding: chunked
  DEBUG   2020-02-17 11:33:55.431368 +01:00 < Connection: close
  DEBUG   2020-02-17 11:33:55.431761 +01:00 response status: 400
  DEBUG   2020-02-17 11:33:55.431814 +01:00 body: 
    <Custom nginx error page>

  DEBUG   2020-02-17 11:33:55.671750 +01:00 request POST https://sentry.backend.dev.myProject.otc/api/0/api/0/organizations/sentry/chunk-upload/
  DEBUG   2020-02-17 11:33:55.671935 +01:00 using token authentication
  DEBUG   2020-02-17 11:33:55.671964 +01:00 sending form data
  DEBUG   2020-02-17 11:33:55.672147 +01:00 using token authentication
  DEBUG   2020-02-17 11:33:55.672189 +01:00 retry number 0, max retries: 5
  DEBUG   2020-02-17 11:33:55.692125 +01:00 request POST https://sentry.backend.dev.myProject.otc/api/0/api/0/organizations/sentry/chunk-upload/
  DEBUG   2020-02-17 11:33:55.692269 +01:00 using token authentication
  DEBUG   2020-02-17 11:33:55.692315 +01:00 sending form data
  DEBUG   2020-02-17 11:33:55.692337 +01:00 using token authentication
  DEBUG   2020-02-17 11:33:55.692450 +01:00 retry number 0, max retries: 5
  DEBUG   2020-02-17 11:33:55.834147 +01:00 > POST /api/0/api/0/organizations/sentry/chunk-upload/ HTTP/1.1
  DEBUG   2020-02-17 11:33:55.834217 +01:00 > Host: sentry.backend.dev.myProject.otc
  DEBUG   2020-02-17 11:33:55.834275 +01:00 > Accept: */*
  DEBUG   2020-02-17 11:33:55.834299 +01:00 > Connection: TE
  DEBUG   2020-02-17 11:33:55.834413 +01:00 > TE: gzip
  DEBUG   2020-02-17 11:33:55.834462 +01:00 > User-Agent: sentry-cli/1.51.0
  DEBUG   2020-02-17 11:33:55.835046 +01:00 > Authorization: Bearer f0c07cb7***
  DEBUG   2020-02-17 11:33:55.835084 +01:00 > Authorization: Bearer f0c07cb7***
  DEBUG   2020-02-17 11:33:55.835176 +01:00 > Content-Length: 3002857
  DEBUG   2020-02-17 11:33:55.835198 +01:00 > Content-Type: multipart/form-data; boundary=------------------------619c04b97237804d
  DEBUG   2020-02-17 11:33:55.856360 +01:00 > POST /api/0/api/0/organizations/sentry/chunk-upload/ HTTP/1.1
  DEBUG   2020-02-17 11:33:55.856429 +01:00 > Host: sentry.backend.dev.myProject.otc
  DEBUG   2020-02-17 11:33:55.856482 +01:00 > Accept: */*
  DEBUG   2020-02-17 11:33:55.856505 +01:00 > Connection: TE
  DEBUG   2020-02-17 11:33:55.856616 +01:00 > TE: gzip
  DEBUG   2020-02-17 11:33:55.856665 +01:00 > User-Agent: sentry-cli/1.51.0
  DEBUG   2020-02-17 11:33:55.857294 +01:00 > Authorization: Bearer f0c07cb7***
  DEBUG   2020-02-17 11:33:55.857334 +01:00 > Authorization: Bearer f0c07cb7***
  DEBUG   2020-02-17 11:33:55.857377 +01:00 > Content-Length: 4939155
  DEBUG   2020-02-17 11:33:55.857397 +01:00 > Content-Type: multipart/form-data; boundary=------------------------327f14b07f6732ff
  DEBUG   2020-02-17 11:33:55.860885 +01:00 < HTTP/1.1 400 Bad Request
  DEBUG   2020-02-17 11:33:55.860925 +01:00 < Server: nginx
  DEBUG   2020-02-17 11:33:55.861053 +01:00 < Date: Mon, 17 Feb 2020 10:33:55 GMT
  DEBUG   2020-02-17 11:33:55.861128 +01:00 < Content-Type: text/html
  DEBUG   2020-02-17 11:33:55.861241 +01:00 < Transfer-Encoding: chunked
  DEBUG   2020-02-17 11:33:55.861305 +01:00 < Connection: close
  DEBUG   2020-02-17 11:33:55.861492 +01:00 response status: 400
  DEBUG   2020-02-17 11:33:55.861557 +01:00 body: 
    <Custom nginx error page>

  DEBUG   2020-02-17 11:33:55.883125 +01:00 < HTTP/1.1 400 Bad Request
  DEBUG   2020-02-17 11:33:55.883187 +01:00 < Server: nginx
  DEBUG   2020-02-17 11:33:55.883290 +01:00 < Date: Mon, 17 Feb 2020 10:33:55 GMT
  DEBUG   2020-02-17 11:33:55.883326 +01:00 < Content-Type: text/html
  DEBUG   2020-02-17 11:33:55.883557 +01:00 < Transfer-Encoding: chunked
  DEBUG   2020-02-17 11:33:55.883644 +01:00 < Connection: close
  DEBUG   2020-02-17 11:33:55.884147 +01:00 response status: 400
  DEBUG   2020-02-17 11:33:55.884196 +01:00 body: 
    <Custom nginx error page>

  DEBUG   2020-02-17 11:33:56.528907 +01:00 request POST https://sentry.backend.dev.myProject.otc/api/0/api/0/organizations/sentry/chunk-upload/
  DEBUG   2020-02-17 11:33:56.529072 +01:00 using token authentication
  DEBUG   2020-02-17 11:33:56.529159 +01:00 sending form data
  DEBUG   2020-02-17 11:33:56.529689 +01:00 using token authentication
  DEBUG   2020-02-17 11:33:56.529720 +01:00 retry number 0, max retries: 5
  DEBUG   2020-02-17 11:33:56.712409 +01:00 > POST /api/0/api/0/organizations/sentry/chunk-upload/ HTTP/1.1
  DEBUG   2020-02-17 11:33:56.712490 +01:00 > Host: sentry.backend.dev.myProject.otc
  DEBUG   2020-02-17 11:33:56.712555 +01:00 > Accept: */*
  DEBUG   2020-02-17 11:33:56.712589 +01:00 > Connection: TE
  DEBUG   2020-02-17 11:33:56.712669 +01:00 > TE: gzip
  DEBUG   2020-02-17 11:33:56.712737 +01:00 > User-Agent: sentry-cli/1.51.0
  DEBUG   2020-02-17 11:33:56.713367 +01:00 > Authorization: Bearer f0c07cb7***
  DEBUG   2020-02-17 11:33:56.713426 +01:00 > Authorization: Bearer f0c07cb7***
  DEBUG   2020-02-17 11:33:56.713458 +01:00 > Content-Length: 12542551
  DEBUG   2020-02-17 11:33:56.713529 +01:00 > Content-Type: multipart/form-data; boundary=------------------------2d90667ba4a9ae2f
  DEBUG   2020-02-17 11:33:56.739074 +01:00 < HTTP/1.1 400 Bad Request
  DEBUG   2020-02-17 11:33:56.739149 +01:00 < Server: nginx
  DEBUG   2020-02-17 11:33:56.739204 +01:00 < Date: Mon, 17 Feb 2020 10:33:56 GMT
  DEBUG   2020-02-17 11:33:56.739288 +01:00 < Content-Type: text/html
  DEBUG   2020-02-17 11:33:56.739327 +01:00 < Transfer-Encoding: chunked
  DEBUG   2020-02-17 11:33:56.739535 +01:00 < Connection: close
  DEBUG   2020-02-17 11:33:56.741044 +01:00 response status: 400
  DEBUG   2020-02-17 11:33:56.741100 +01:00 body: 
    <Custom nginx error page>

  DEBUG   2020-02-17 11:33:56.777557 +01:00 error: running update nagger
  INFO    2020-02-17 11:33:56.777867 +01:00 Skipping update nagger update check
error: API request failed
  caused by: sentry reported an error: bad request (http status: 400)
  DEBUG   2020-02-17 11:33:56.778464 +01:00 client close; no transport to shut down  (from sentry)

Most helpful comment

@Tymolc I investigated it, and apparently when some requests are not sent through http/https, they can get authenticated, however from what I see, your requests are all done through https. I'll try to find some more time to get this request flow ironed-out, and it should help fix this issue.

All 3 comments

I can't seem to be able to reproduce this issue in any reliable way. Not a single way I tried to perform a request produced multiple Authorization header. Is there a chance you were able to do that?

Sadly, I still don't know why the duplicated header should occur.
It only happens with our on-premise setup of Sentry. I don't see any problems when pushing something to sentry.io ...
I'm not too familiar with Rust. The code part that looked like it could cause this behaviour the most to me was this one: https://github.com/getsentry/sentry-cli/blob/399eb44cb14f85229ca7ee75dc430340123e29e9/src/api.rs#L1052-L1059

Is it possible that, for some reason, Self::request() _did_ add an authorization header and this code adds another one? What does a "sentry-compatible" endpoint imply?

@Tymolc I investigated it, and apparently when some requests are not sent through http/https, they can get authenticated, however from what I see, your requests are all done through https. I'll try to find some more time to get this request flow ironed-out, and it should help fix this issue.

Was this page helpful?
0 / 5 - 0 ratings