getsentry / sentry-cli

A command line utility to work with Sentry.
https://docs.sentry.io/cli/
BSD 3-Clause "New" or "Revised" License
893 stars 222 forks source link

Uploading dSYMs for iOS project reports #1923

Closed iwclibro closed 4 months ago

iwclibro commented 5 months ago

Environment

What version of the CLI and what OS are you running? sentry-cli 2.27.0 The app is using sentry-cocoa 8.18 MacOS Sonoma 14.1.2

Steps to Reproduce

  1. Upload iOS app dSYMs with fastlane-sentry-plugin
  2. Observe no errors from the upload
  3. Investigate sentry.io site reports to find all stack frames are redacted
  4. Observe the web ui shows the message "A required debug information file was missing"
  5. Use sentry-cli directly with the dSYMs in the exported archive for the same build
  6. sentry-cli reports 'Nothing to upload, all files are on the server'
Screenshot 2024-01-31 at 4 38 14 PM

What you did?

Our build process uses fastlane-plugin-sentry to upload dSYMs for our iOS application build.

Upload dSYMs with fastlane-sentry-plugin :

  sentry_upload_dif(
      auth_token: <token>,
      org_slug: <out-app-slug>,
      project_slug: 'ios-app',
      path: <dsympath>
    )

Expected Result

I expect to see symbolicated reports. This setup has been working for several months without issue until I updated the sentry-cocoa dependency and sentry-cli.

Actual Result

Screenshot 2024-01-31 at 4 23 23 PM

Logs

I don't currently have a log from the initial upload, but here is a log from attempting to upload files and getting "Nothing to upload":

` INFO 2024-01-31 16:28:35.846964 -05:00 Loaded config from /Users/iwc/.sentryclirc DEBUG 2024-01-31 16:28:35.847544 -05:00 sentry-cli version: 2.27.0, platform: "darwin", architecture: "arm64" INFO 2024-01-31 16:28:35.848446 -05:00 sentry-cli was invoked with the following command line: "sentry-cli" "--auth-token" "" "upload-dif" "--org" "librofm" "--project" "ios-app" "--log-level=debug" "." INFO 2024-01-31 16:28:35.848777 -05:00 Issuing a command for Organization: librofm Project: ios-app DEBUG 2024-01-31 16:28:35.850128 -05:00 request GET https://sentry.io/api/0/organizations/librofm/chunk-upload/ DEBUG 2024-01-31 16:28:35.850157 -05:00 using token authentication DEBUG 2024-01-31 16:28:35.850402 -05:00 retry number 0, max retries: 0 DEBUG 2024-01-31 16:28:35.910195 -05:00 > GET /api/0/organizations/librofm/chunk-upload/ HTTP/1.1 DEBUG 2024-01-31 16:28:35.910248 -05:00 > Host: sentry.io DEBUG 2024-01-31 16:28:35.910252 -05:00 > Accept: */* DEBUG 2024-01-31 16:28:35.910257 -05:00 > Connection: TE DEBUG 2024-01-31 16:28:35.910261 -05:00 > TE: gzip DEBUG 2024-01-31 16:28:35.910265 -05:00 > User-Agent: sentry-cli/2.27.0 DEBUG 2024-01-31 16:28:35.911150 -05:00 > Authorization: Bearer 6ac27a70*** DEBUG 2024-01-31 16:28:36.002655 -05:00 < HTTP/1.1 200 OK DEBUG 2024-01-31 16:28:36.002735 -05:00 < server: nginx DEBUG 2024-01-31 16:28:36.002746 -05:00 < date: Wed, 31 Jan 2024 21:28:36 GMT DEBUG 2024-01-31 16:28:36.002755 -05:00 < content-type: application/json DEBUG 2024-01-31 16:28:36.002765 -05:00 < Content-Length: 338 DEBUG 2024-01-31 16:28:36.002775 -05:00 < allow: GET, POST, HEAD, OPTIONS DEBUG 2024-01-31 16:28:36.002783 -05:00 < access-control-allow-methods: GET, POST, HEAD, OPTIONS DEBUG 2024-01-31 16:28:36.002812 -05:00 < access-control-allow-headers: X-Sentry-Auth, X-Requested-With, Origin, Accept, Content-Type, Authentication, Authorization, Content-Encoding, sentry-trace, baggage, X-CSRFToken DEBUG 2024-01-31 16:28:36.002823 -05:00 < access-control-expose-headers: X-Sentry-Error, X-Sentry-Direct-Hit, X-Hits, X-Max-Hits, Endpoint, Retry-After, Link DEBUG 2024-01-31 16:28:36.002951 -05:00 < access-control-allow-origin: * DEBUG 2024-01-31 16:28:36.002961 -05:00 < x-sentry-rate-limit-remaining: 199 DEBUG 2024-01-31 16:28:36.002968 -05:00 < x-sentry-rate-limit-limit: 200 DEBUG 2024-01-31 16:28:36.002975 -05:00 < x-sentry-rate-limit-reset: 1706736516 DEBUG 2024-01-31 16:28:36.002991 -05:00 < x-sentry-rate-limit-concurrentremaining: 199 DEBUG 2024-01-31 16:28:36.002999 -05:00 < x-sentry-rate-limit-concurrentlimit: 200 DEBUG 2024-01-31 16:28:36.003006 -05:00 < vary: Accept-Language, Cookie DEBUG 2024-01-31 16:28:36.003014 -05:00 < content-language: en DEBUG 2024-01-31 16:28:36.003134 -05:00 < x-frame-options: deny DEBUG 2024-01-31 16:28:36.003143 -05:00 < x-content-type-options: nosniff DEBUG 2024-01-31 16:28:36.003150 -05:00 < x-xss-protection: 1; mode=block DEBUG 2024-01-31 16:28:36.003163 -05:00 < content-security-policy: object-src 'self'; frame-ancestors 'self' *.sentry.io; media-src *; base-uri 'none'; style-src 'unsafe-inline' *; connect-src 'self' *.algolia.net *.algolianet.com *.algolia.io sentry.io *.sentry.io s1.sentry-cdn.com o1.ingest.sentry.io api2.amplitude.com app.pendo.io data.pendo.io reload.getsentry.net t687h3m0nh65.statuspage.io sentry.zendesk.com ekr.zdassets.com maps.googleapis.com; default-src 'none'; font-src * data:; frame-src app.pendo.io demo.arcade.software js.stripe.com sentry.io; img-src blob: data: *; script-src 'self' 'unsafe-inline' 'report-sample' 'unsafe-eval' s1.sentry-cdn.com js.sentry-cdn.com browser.sentry-cdn.com statuspage-production.s3.amazonaws.com static.zdassets.com aui-cdn.atlassian.com connect-cdn.atl-paas.net js.stripe.com 'strict-dynamic' cdn.pendo.io data.pendo.io pendo-io-static.storage.googleapis.com pendo-static-5634074999128064.storage.googleapis.com; report-uri https://o1.ingest.sentry.io/api/54785/security/?sentry_key=f724a8a027db45f5b21507e7142ff78e&sentry_release=1f472248fc677afd5e387d666dbcee3cdc9813cf DEBUG 2024-01-31 16:28:36.003240 -05:00 < x-envoy-attempt-count: 1 DEBUG 2024-01-31 16:28:36.003248 -05:00 < x-envoy-upstream-service-time: 62 DEBUG 2024-01-31 16:28:36.003270 -05:00 < x-served-by: getsentry-web-default-common-production-596d7c98b8-hds5m DEBUG 2024-01-31 16:28:36.003279 -05:00 < x-served-by: frontend-default-7f5bf75576-x2gql DEBUG 2024-01-31 16:28:36.003286 -05:00 < strict-transport-security: max-age=31536000; includeSubDomains; preload DEBUG 2024-01-31 16:28:36.003293 -05:00 < via: 1.1 google DEBUG 2024-01-31 16:28:36.003300 -05:00 < Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 DEBUG 2024-01-31 16:28:36.003356 -05:00 response status: 200 DEBUG 2024-01-31 16:28:36.003368 -05:00 body: {"url":"organizations/librofm/chunk-upload/","chunkSize":8388608,"chunksPerRequest":64,"maxFileSize":2147483648,"maxRequestSize":33554432,"concurrency":8,"hashAlgorithm":"sha1","compression":["gzip"],"accept":["debug_files","release_files","pdbs","sources","bcsymbolmaps","il2cpp","portablepdbs","artifact_bundles","artifact_bundles_v2"]} DEBUG 2024-01-31 16:28:36.005211 -05:00 searching location . DEBUG 2024-01-31 16:28:36.005801 -05:00 trying to process Libro.fm Ad Hoc Test.app.dSYM/Contents/Resources/Relocations/aarch64/Libro.fm Ad Hoc Test.yml DEBUG 2024-01-31 16:28:36.007110 -05:00 trying to process Libro.fm Ad Hoc Test.app.dSYM/Contents/Resources/DWARF/Libro.fm Ad Hoc Test DEBUG 2024-01-31 16:28:36.007396 -05:00 trying to parse dif Libro.fm Ad Hoc Test.app.dSYM/Contents/Resources/DWARF/Libro.fm Ad Hoc Test DEBUG 2024-01-31 16:28:36.008202 -05:00 trying to process Libro.fm Ad Hoc Test.app.dSYM/Contents/Info.plist DEBUG 2024-01-31 16:28:36.008959 -05:00 trying to process Libro.fm Widget Ad Hoc Extension.appex.dSYM/Contents/Resources/Relocations/aarch64/Libro.fm Widget Ad Hoc Extension.yml DEBUG 2024-01-31 16:28:36.009298 -05:00 trying to process Libro.fm Widget Ad Hoc Extension.appex.dSYM/Contents/Resources/DWARF/Libro.fm Widget Ad Hoc Extension DEBUG 2024-01-31 16:28:36.009535 -05:00 trying to parse dif Libro.fm Widget Ad Hoc Extension.appex.dSYM/Contents/Resources/DWARF/Libro.fm Widget Ad Hoc Extension DEBUG 2024-01-31 16:28:36.009681 -05:00 trying to process Libro.fm Widget Ad Hoc Extension.appex.dSYM/Contents/Info.plist DEBUG 2024-01-31 16:28:36.010097 -05:00 trying to process Libro.fm Watch Ad Hoc WatchKit Extension.appex.dSYM/Contents/Resources/Relocations/aarch64_32/Libro.fm Watch Ad Hoc WatchKit Extension.yml DEBUG 2024-01-31 16:28:36.010497 -05:00 trying to process Libro.fm Watch Ad Hoc WatchKit Extension.appex.dSYM/Contents/Resources/Relocations/arm/Libro.fm Watch Ad Hoc WatchKit Extension.yml DEBUG 2024-01-31 16:28:36.010800 -05:00 trying to process Libro.fm Watch Ad Hoc WatchKit Extension.appex.dSYM/Contents/Resources/Relocations/aarch64/Libro.fm Watch Ad Hoc WatchKit Extension.yml DEBUG 2024-01-31 16:28:36.011086 -05:00 trying to process Libro.fm Watch Ad Hoc WatchKit Extension.appex.dSYM/Contents/Resources/DWARF/Libro.fm Watch Ad Hoc WatchKit Extension DEBUG 2024-01-31 16:28:36.011342 -05:00 trying to parse dif Libro.fm Watch Ad Hoc WatchKit Extension.appex.dSYM/Contents/Resources/DWARF/Libro.fm Watch Ad Hoc WatchKit Extension DEBUG 2024-01-31 16:28:36.012054 -05:00 trying to process Libro.fm Watch Ad Hoc WatchKit Extension.appex.dSYM/Contents/Info.plist DEBUG 2024-01-31 16:28:36.012264 -05:00 finished location . > Found 5 debug information files > Prepared debug information files for upload DEBUG 2024-01-31 16:28:36.873592 -05:00 request POST https://sentry.io/api/0/projects/librofm/ios-app/files/difs/assemble/ DEBUG 2024-01-31 16:28:36.873635 -05:00 using token authentication DEBUG 2024-01-31 16:28:36.873715 -05:00 json body: {"58a3874e3e9738fbac113b76f355d1055f34d2ab":{"name":"Libro.fm Watch Ad Hoc WatchKit Extension","debug_id":"a7103694-5f09-3425-9f52-7e010db7809a","chunks":["a883a14d587512e47fbe0b362110db64bd699bcd","5ab225603786402438849e372c391a89115d1a02","715f7f3c28c9898879c84f2dbbcae823d0080474"]},"73351d6177aa8db67f776c3b1cfe56d256ce0512":{"name":"Libro.fm Watch Ad Hoc WatchKit Extension","debug_id":"44addac5-631e-3e46-b001-585a2f68913b","chunks":["7e938711aebb5110037961799cf3c67596613405","1e40f12bfa8707214bc3163028c265368b4059ae","1d99bacb731fb963912ce6178585040b482dc052"]},"65d6e9d818d5bded6ef6996518cea5a3b42d9c16":{"name":"Libro.fm Watch Ad Hoc WatchKit Extension","debug_id":"ca59a775-8939-33ae-942f-e10f98bdf17d","chunks":["7e82a409c7c4b4ee69d79397ef52f15ff0b84df7","e65b82e0ee4136163888e3262d0938fe551aa9ae","a0c8925d24c891c68670dc25442f5f8b73778b96"]},"ceb42024791c90adec1a51981be7cf6238eacf25":{"name":"Libro.fm Ad Hoc Test","debug_id":"0043400c-0503-3d20-bde2-7eaa812bcd79","chunks":["9217ffd8609a1a8f933afe0ff2b213cbc3507f53","4afe0de6f448c918ce1c701edd5188b5a54cb14f","d3d27c8de50a6849e6d7ca66f98166ac13bc767c","fcf1c9b2f4af3e02079d860fc38205785bd85db3","1587e7da5faa0ffc3c91c499b1623b362ac1f3b2","b20d99451abb39915c4f8a91f2278ce2d8f2a04c"]},"8b069614b046d8db9cd2dbb59aaf2131d2adda04":{"name":"Libro.fm Widget Ad Hoc Extension","debug_id":"e08b4415-cc33-3b68-809c-6c373f158e70","chunks":["8b069614b046d8db9cd2dbb59aaf2131d2adda04"]}} DEBUG 2024-01-31 16:28:36.873792 -05:00 retry number 0, max retries: 5 DEBUG 2024-01-31 16:28:36.873925 -05:00 > POST /api/0/projects/librofm/ios-app/files/difs/assemble/ HTTP/1.1 DEBUG 2024-01-31 16:28:36.873932 -05:00 > Host: sentry.io DEBUG 2024-01-31 16:28:36.873935 -05:00 > Accept: */* DEBUG 2024-01-31 16:28:36.873938 -05:00 > Connection: TE DEBUG 2024-01-31 16:28:36.873940 -05:00 > TE: gzip DEBUG 2024-01-31 16:28:36.873943 -05:00 > User-Agent: sentry-cli/2.27.0 DEBUG 2024-01-31 16:28:36.873958 -05:00 > Authorization: Bearer 6ac27a70*** DEBUG 2024-01-31 16:28:36.873962 -05:00 > Content-Type: application/json DEBUG 2024-01-31 16:28:36.873964 -05:00 > Content-Length: 1441 DEBUG 2024-01-31 16:28:37.016290 -05:00 < HTTP/1.1 200 OK DEBUG 2024-01-31 16:28:37.016354 -05:00 < server: nginx DEBUG 2024-01-31 16:28:37.016363 -05:00 < date: Wed, 31 Jan 2024 21:28:37 GMT DEBUG 2024-01-31 16:28:37.016370 -05:00 < content-type: application/json DEBUG 2024-01-31 16:28:37.016377 -05:00 < Content-Length: 2859 DEBUG 2024-01-31 16:28:37.016384 -05:00 < vary: Accept-Encoding,Accept-Language, Cookie DEBUG 2024-01-31 16:28:37.016389 -05:00 < allow: POST, OPTIONS DEBUG 2024-01-31 16:28:37.016395 -05:00 < access-control-allow-methods: POST, OPTIONS DEBUG 2024-01-31 16:28:37.016410 -05:00 < access-control-allow-headers: X-Sentry-Auth, X-Requested-With, Origin, Accept, Content-Type, Authentication, Authorization, Content-Encoding, sentry-trace, baggage, X-CSRFToken DEBUG 2024-01-31 16:28:37.016456 -05:00 < access-control-expose-headers: X-Sentry-Error, X-Sentry-Direct-Hit, X-Hits, X-Max-Hits, Endpoint, Retry-After, Link DEBUG 2024-01-31 16:28:37.016464 -05:00 < access-control-allow-origin: * DEBUG 2024-01-31 16:28:37.016469 -05:00 < x-sentry-rate-limit-remaining: 39 DEBUG 2024-01-31 16:28:37.016475 -05:00 < x-sentry-rate-limit-limit: 40 DEBUG 2024-01-31 16:28:37.016480 -05:00 < x-sentry-rate-limit-reset: 1706736517 DEBUG 2024-01-31 16:28:37.016486 -05:00 < x-sentry-rate-limit-concurrentremaining: 24 DEBUG 2024-01-31 16:28:37.016491 -05:00 < x-sentry-rate-limit-concurrentlimit: 25 DEBUG 2024-01-31 16:28:37.016496 -05:00 < content-language: en DEBUG 2024-01-31 16:28:37.016591 -05:00 < x-frame-options: deny DEBUG 2024-01-31 16:28:37.016603 -05:00 < x-content-type-options: nosniff DEBUG 2024-01-31 16:28:37.016609 -05:00 < x-xss-protection: 1; mode=block DEBUG 2024-01-31 16:28:37.016620 -05:00 < content-security-policy: connect-src 'self' *.algolia.net *.algolianet.com *.algolia.io sentry.io *.sentry.io s1.sentry-cdn.com o1.ingest.sentry.io api2.amplitude.com app.pendo.io data.pendo.io reload.getsentry.net t687h3m0nh65.statuspage.io sentry.zendesk.com ekr.zdassets.com maps.googleapis.com; img-src blob: data: *; frame-ancestors 'self' *.sentry.io; frame-src app.pendo.io demo.arcade.software js.stripe.com sentry.io; object-src 'self'; script-src 'self' 'unsafe-inline' 'report-sample' 'unsafe-eval' s1.sentry-cdn.com js.sentry-cdn.com browser.sentry-cdn.com statuspage-production.s3.amazonaws.com static.zdassets.com aui-cdn.atlassian.com connect-cdn.atl-paas.net js.stripe.com 'strict-dynamic' cdn.pendo.io data.pendo.io pendo-io-static.storage.googleapis.com pendo-static-5634074999128064.storage.googleapis.com; font-src * data:; base-uri 'none'; style-src 'unsafe-inline' *; default-src 'none'; media-src *; report-uri https://o1.ingest.sentry.io/api/54785/security/?sentry_key=f724a8a027db45f5b21507e7142ff78e&sentry_release=1f472248fc677afd5e387d666dbcee3cdc9813cf DEBUG 2024-01-31 16:28:37.016694 -05:00 < x-envoy-attempt-count: 1 DEBUG 2024-01-31 16:28:37.016701 -05:00 < x-envoy-upstream-service-time: 109 DEBUG 2024-01-31 16:28:37.016707 -05:00 < x-served-by: getsentry-web-default-common-production-596d7c98b8-5bkgn DEBUG 2024-01-31 16:28:37.016714 -05:00 < x-served-by: frontend-default-7f5bf75576-8qlzm DEBUG 2024-01-31 16:28:37.016721 -05:00 < strict-transport-security: max-age=31536000; includeSubDomains; preload DEBUG 2024-01-31 16:28:37.016727 -05:00 < via: 1.1 google DEBUG 2024-01-31 16:28:37.016733 -05:00 < Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 DEBUG 2024-01-31 16:28:37.016868 -05:00 response status: 200 DEBUG 2024-01-31 16:28:37.016882 -05:00 body: {"58a3874e3e9738fbac113b76f355d1055f34d2ab":{"state":"ok","detail":null,"missingChunks":[],"dif":{"id":"541080230","uuid":"a7103694-5f09-3425-9f52-7e010db7809a","debugId":"a7103694-5f09-3425-9f52-7e010db7809a","codeId":"a71036945f0934259f527e010db7809a","cpuName":"arm64_32_v8","objectName":"Libro.fm Watch Ad Hoc WatchKit Extension","symbolType":"macho","headers":{"Content-Type":"application/x-mach-binary"},"size":21535239,"sha1":"58a3874e3e9738fbac113b76f355d1055f34d2ab","dateCreated":"2024-01-30T20:44:59.212584Z","data":{"type":"dbg","features":["unwind","symtab","debug"]}}},"73351d6177aa8db67f776c3b1cfe56d256ce0512":{"state":"ok","detail":null,"missingChunks":[],"dif":{"id":"541080229","uuid":"44addac5-631e-3e46-b001-585a2f68913b","debugId":"44addac5-631e-3e46-b001-585a2f68913b","codeId":"44addac5631e3e46b001585a2f68913b","cpuName":"armv7k","objectName":"Libro.fm Watch Ad Hoc WatchKit Extension","symbolType":"macho","headers":{"Content-Type":"application/x-mach-binary"},"size":22369256,"sha1":"73351d6177aa8db67f776c3b1cfe56d256ce0512","dateCreated":"2024-01-30T20:44:59.223278Z","data":{"type":"dbg","features":["debug","symtab","unwind"]}}},"65d6e9d818d5bded6ef6996518cea5a3b42d9c16":{"state":"ok","detail":null,"missingChunks":[],"dif":{"id":"541080228","uuid":"ca59a775-8939-33ae-942f-e10f98bdf17d","debugId":"ca59a775-8939-33ae-942f-e10f98bdf17d","codeId":"ca59a775893933ae942fe10f98bdf17d","cpuName":"arm64","objectName":"Libro.fm Watch Ad Hoc WatchKit Extension","symbolType":"macho","headers":{"Content-Type":"application/x-mach-binary"},"size":20773455,"sha1":"65d6e9d818d5bded6ef6996518cea5a3b42d9c16","dateCreated":"2024-01-30T20:44:59.182507Z","data":{"type":"dbg","features":["debug","symtab","unwind"]}}},"ceb42024791c90adec1a51981be7cf6238eacf25":{"state":"ok","detail":null,"missingChunks":[],"dif":{"id":"541080239","uuid":"0043400c-0503-3d20-bde2-7eaa812bcd79","debugId":"0043400c-0503-3d20-bde2-7eaa812bcd79","codeId":"0043400c05033d20bde27eaa812bcd79","cpuName":"arm64","objectName":"Libro.fm Ad Hoc Test","symbolType":"macho","headers":{"Content-Type":"application/x-mach-binary"},"size":44803880,"sha1":"ceb42024791c90adec1a51981be7cf6238eacf25","dateCreated":"2024-01-30T20:44:59.196635Z","data":{"type":"dbg","features":["symtab","unwind","debug"]}}},"8b069614b046d8db9cd2dbb59aaf2131d2adda04":{"state":"ok","detail":null,"missingChunks":[],"dif":{"id":"537854529","uuid":"e08b4415-cc33-3b68-809c-6c373f158e70","debugId":"e08b4415-cc33-3b68-809c-6c373f158e70","codeId":"e08b4415cc333b68809c6c373f158e70","cpuName":"arm64","objectName":"Libro.fm Widget Ad Hoc Extension","symbolType":"macho","headers":{"Content-Type":"application/x-mach-binary"},"size":1369731,"sha1":"8b069614b046d8db9cd2dbb59aaf2131d2adda04","dateCreated":"2024-01-25T20:47:02.961351Z","data":{"type":"dbg","features":["symtab","unwind","debug"]}}}} > Nothing to upload, all files are on the server DEBUG 2024-01-31 16:28:37.018548 -05:00 request POST https://sentry.io/api/0/projects/librofm/ios-app/reprocessing/ DEBUG 2024-01-31 16:28:37.018560 -05:00 using token authentication DEBUG 2024-01-31 16:28:37.018567 -05:00 retry number 0, max retries: 0 DEBUG 2024-01-31 16:28:37.018703 -05:00 > POST /api/0/projects/librofm/ios-app/reprocessing/ HTTP/1.1 DEBUG 2024-01-31 16:28:37.018717 -05:00 > Host: sentry.io DEBUG 2024-01-31 16:28:37.018722 -05:00 > Accept: */* DEBUG 2024-01-31 16:28:37.018726 -05:00 > Connection: TE DEBUG 2024-01-31 16:28:37.018731 -05:00 > TE: gzip DEBUG 2024-01-31 16:28:37.018736 -05:00 > User-Agent: sentry-cli/2.27.0 DEBUG 2024-01-31 16:28:37.018761 -05:00 > Authorization: Bearer 6ac27a70*** DEBUG 2024-01-31 16:28:37.018766 -05:00 > Content-Length: 0 DEBUG 2024-01-31 16:28:37.121192 -05:00 < HTTP/1.1 200 OK DEBUG 2024-01-31 16:28:37.121259 -05:00 < server: nginx DEBUG 2024-01-31 16:28:37.121271 -05:00 < date: Wed, 31 Jan 2024 21:28:37 GMT DEBUG 2024-01-31 16:28:37.121281 -05:00 < Content-Length: 0 DEBUG 2024-01-31 16:28:37.121289 -05:00 < allow: POST, OPTIONS DEBUG 2024-01-31 16:28:37.121299 -05:00 < access-control-allow-methods: POST, OPTIONS DEBUG 2024-01-31 16:28:37.121315 -05:00 < access-control-allow-headers: X-Sentry-Auth, X-Requested-With, Origin, Accept, Content-Type, Authentication, Authorization, Content-Encoding, sentry-trace, baggage, X-CSRFToken DEBUG 2024-01-31 16:28:37.121325 -05:00 < access-control-expose-headers: X-Sentry-Error, X-Sentry-Direct-Hit, X-Hits, X-Max-Hits, Endpoint, Retry-After, Link DEBUG 2024-01-31 16:28:37.121347 -05:00 < access-control-allow-origin: * DEBUG 2024-01-31 16:28:37.121356 -05:00 < x-sentry-rate-limit-remaining: 39 DEBUG 2024-01-31 16:28:37.121363 -05:00 < x-sentry-rate-limit-limit: 40 DEBUG 2024-01-31 16:28:37.121370 -05:00 < x-sentry-rate-limit-reset: 1706736518 DEBUG 2024-01-31 16:28:37.121378 -05:00 < x-sentry-rate-limit-concurrentremaining: 24 DEBUG 2024-01-31 16:28:37.121385 -05:00 < x-sentry-rate-limit-concurrentlimit: 25 DEBUG 2024-01-31 16:28:37.121392 -05:00 < vary: Accept-Language, Cookie DEBUG 2024-01-31 16:28:37.121400 -05:00 < content-language: en DEBUG 2024-01-31 16:28:37.121407 -05:00 < x-frame-options: deny DEBUG 2024-01-31 16:28:37.121415 -05:00 < x-content-type-options: nosniff DEBUG 2024-01-31 16:28:37.121538 -05:00 < x-xss-protection: 1; mode=block DEBUG 2024-01-31 16:28:37.121555 -05:00 < content-security-policy: object-src 'self'; frame-src app.pendo.io demo.arcade.software js.stripe.com sentry.io; base-uri 'none'; style-src 'unsafe-inline' *; script-src 'self' 'unsafe-inline' 'report-sample' 'unsafe-eval' s1.sentry-cdn.com js.sentry-cdn.com browser.sentry-cdn.com statuspage-production.s3.amazonaws.com static.zdassets.com aui-cdn.atlassian.com connect-cdn.atl-paas.net js.stripe.com 'strict-dynamic' cdn.pendo.io data.pendo.io pendo-io-static.storage.googleapis.com pendo-static-5634074999128064.storage.googleapis.com; img-src blob: data: *; media-src *; default-src 'none'; connect-src 'self' *.algolia.net *.algolianet.com *.algolia.io sentry.io *.sentry.io s1.sentry-cdn.com o1.ingest.sentry.io api2.amplitude.com app.pendo.io data.pendo.io reload.getsentry.net t687h3m0nh65.statuspage.io sentry.zendesk.com ekr.zdassets.com maps.googleapis.com; frame-ancestors 'self' *.sentry.io; font-src * data:; report-uri https://o1.ingest.sentry.io/api/54785/security/?sentry_key=f724a8a027db45f5b21507e7142ff78e&sentry_release=1f472248fc677afd5e387d666dbcee3cdc9813cf DEBUG 2024-01-31 16:28:37.121629 -05:00 < x-envoy-attempt-count: 1 DEBUG 2024-01-31 16:28:37.121641 -05:00 < x-envoy-upstream-service-time: 71 DEBUG 2024-01-31 16:28:37.121649 -05:00 < x-served-by: getsentry-web-default-common-production-596d7c98b8-xnvn2 DEBUG 2024-01-31 16:28:37.121657 -05:00 < x-served-by: frontend-default-7f5bf75576-h4v9n DEBUG 2024-01-31 16:28:37.121665 -05:00 < strict-transport-security: max-age=31536000; includeSubDomains; preload DEBUG 2024-01-31 16:28:37.121672 -05:00 < via: 1.1 google DEBUG 2024-01-31 16:28:37.121679 -05:00 < Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 DEBUG 2024-01-31 16:28:37.121704 -05:00 response status: 200 DEBUG 2024-01-31 16:28:37.121713 -05:00 body:`
szokeasaurusrex commented 5 months ago

Hi @iwclibro, thank you for your report.

We will need some more information to be able to help you. Would you be able to share a link to an event where you see the "required debug information file was missing" error message? Perhaps a link to the page where you observed the screenshot you shared above?

iwclibro commented 5 months ago

https://librofm.sentry.io/issues/4932806950/?environment=dev&project=62429&query=is%3Aunresolved&referrer=issue-stream&statsPeriod=7d&stream_index=1

This is a test event I posted to verify some refactoring I'm doing, hence the generic message and tags.

On Thu, Feb 1, 2024 at 5:15 AM Daniel Szoke @.***> wrote:

Hi @iwclibro https://github.com/iwclibro, thank you for your report.

We will need some more information to be able to help you. Would you be able to share a link to an event where you see the "required debug information file was missing" error message? Perhaps a link to the page where you observed the screenshot you shared above?

— Reply to this email directly, view it on GitHub https://github.com/getsentry/sentry-cli/issues/1923#issuecomment-1920975415, or unsubscribe https://github.com/notifications/unsubscribe-auth/A6W4PW6BWRG6642UTHCWCOTYRNTMPAVCNFSM6AAAAABCTZLLN6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMRQHE3TKNBRGU . You are receiving this because you were mentioned.Message ID: @.***>

iwclibro commented 5 months ago

Actually, this event is better, the previous might actually not have dSYMs associated. https://librofm.sentry.io/issues/4930081522/?project=62429&query=release%3Afm.libro.Libro-fmAdHoc%406.7.0%2B2&referrer=release-issue-stream

On Thu, Feb 1, 2024 at 10:59 AM Irwin Coleman @.***> wrote:

https://librofm.sentry.io/issues/4932806950/?environment=dev&project=62429&query=is%3Aunresolved&referrer=issue-stream&statsPeriod=7d&stream_index=1

This is a test event I posted to verify some refactoring I'm doing, hence the generic message and tags.

On Thu, Feb 1, 2024 at 5:15 AM Daniel Szoke @.***> wrote:

Hi @iwclibro https://github.com/iwclibro, thank you for your report.

We will need some more information to be able to help you. Would you be able to share a link to an event where you see the "required debug information file was missing" error message? Perhaps a link to the page where you observed the screenshot you shared above?

— Reply to this email directly, view it on GitHub https://github.com/getsentry/sentry-cli/issues/1923#issuecomment-1920975415, or unsubscribe https://github.com/notifications/unsubscribe-auth/A6W4PW6BWRG6642UTHCWCOTYRNTMPAVCNFSM6AAAAABCTZLLN6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMRQHE3TKNBRGU . You are receiving this because you were mentioned.Message ID: @.***>

philipphofmann commented 5 months ago

This setup has been working for several months without issue until I updated the sentry-cocoa dependency and sentry-cli.

@iwclibro, what was the last version of sentry-cli or sentry-fastlane-plugin when your setup worked? Does it still work with that version?

iwclibro commented 5 months ago

Previously we were using sentry-cocoa 7.9.0. I will have to check how the app behaves with the older sdk version.

iwclibro commented 5 months ago

Ok, I have a side by side comparison now. Here are two events. They are posted from the same location at app startup. One is using sentry 7.9, and the other is using 8.18 (the version is in the event message).

This is early at startup, so the stack isn't great, but you can see the stack frames leading up to the call are populated on the 7.9 version, but not on 8.18.

https://librofm.sentry.io/issues/4950844384/?project=62429&query=is%3Aunresolved&referrer=issue-stream&statsPeriod=24h&stream_index=3

https://librofm.sentry.io/issues/4950901348/?project=62429&query=is%3Aunresolved&referrer=issue-stream&statsPeriod=24h&stream_index=0

Also note that the 8.18 report complains about missing symbols, but the 7.9 version does not. All I did was change the dependency version for sentry-cocoa and the event message between the two cases.

iwclibro commented 5 months ago

Also, the issue remains for version 8.20:

https://librofm.sentry.io/issues/4950965310/?project=62429&query=is%3Aunresolved&referrer=issue-stream&statsPeriod=24h&stream_index=2

szokeasaurusrex commented 5 months ago

@iwclibro, it appears that your debug information files are also missing from the version 7.9 example issue you linked. These icons in the stack trace indicate that the debug information files are missing: image

If you hover over the icon, you will see the following message:

This frame has missing debug files and could not be symbolicated

I am unsure why the red banner with the "A required debug information file was missing (2)" message only appears in the version 8.x examples, but it seems that whatever the problem, it was also present when you were using 7.9.

Could you perhaps provide a log from an initial upload of the debug files?

philipphofmann commented 5 months ago

Since sentry-cocoa 8.9.0 we only symbolicate locally when debug is enabled. So it could be that you, @iwclibro, got proper stacktraces in v 7.x, because our SDK symbolicated locally back then. We disabled this because of performance reasons; see https://github.com/getsentry/sentry-cocoa/issues/3043.

iwclibro commented 5 months ago

So I guess I am confused then. When I send an event to sentry from my production app, I should no longer expect the call stack portion to ever show symbolicated frames? Why does that part of the UI even exist?

I have released 3 different builds to TestFlight with my updated Sentry dependency. As part of the release script, the dSYMs are uploaded to sentry. NONE of these events have shown up with symbolicated frames. Are you saying that I shouldn't expect for those frames to EVER be symbolicated?

iwclibro commented 5 months ago

I went and found an event with no stack frame from one of our releases. The issue presents the banner saying a "A required debug information file was missing" at the top.

So I go into the Xcode organizer to the archive of the corresponding build. I went into the archive to the dSYM folder and ran this:

sentry-cli --auth-token <our token> upload-dif --org "librofm" --project "ios-app" -- "."

The output from the command shows me: > Found 5 debug information files > Prepared debug information files for upload > Nothing to upload, all files are on the server

Normally this step is run automatically from a fastlane step using the sentry-plugin inside the build folder. The fastlane script specifies lane_context[SharedValues::DSYM_OUTPUT_PATH] for the path to read from.

Shouldn't I have all the symbols in place? Is there some other step that is missing? Until I moved to 8.18, none of the events complained about missing debug information files.

I saw some other issues where people suggested that files weren't actually getting uploaded unless they passed the force_foreground flag, so I added that with no improvement.

$ sentry-cli -V sentry-cli 2.27.0

philipphofmann commented 5 months ago

Are you saying that I shouldn't expect for those frames to EVER be symbolicated?

No, if the dSYMs are there, they should 😃 . I'm sorry that you have to go through so much trouble. I'm trying to figure out what's going on here 🤔.

So I go into the Xcode organizer to the archive of the corresponding build. I went into the archive to the dSYM folder and ran this:

sentry-cli --auth-token upload-dif --org "librofm" --project "ios-app" -- "."

You don't need to navigate to the dSYMs folder. You can stay outside the archive and then pass the archive as the path. sentry-cli can search archives.

The output below states it found files, but all of them are on the server already.

Found 5 debug information files
Prepared debug information files for upload
Nothing to upload, all files are on the server

Maybe your Xcarchive doesn't contain all required dSYMs. As you mentioned that you use Fastlane, try setting include_symbols: true, for your build_app, and check if your dSYMs folder contains more dSYMs.

This event states that it is missing specific debug symbols. You can copy the Debug ID and use sentry-cli debug-files find <identifier> (docs) to check if your Xcarchive contains it. If yes, and the sentry-cli doesn't upload it, we know there's a bug in sentry-cli.

CleanShot 2024-02-08 at 14 22 41@2x

iwclibro commented 5 months ago

Ok, I rebuilt the latest versions with include_symbols set and uploaded symbols. I didn't archive these builds specifically. I ran the upload where my ipa's were dropped alongside *.dSYM.zip files. It did find some additional dSYM files to upload.

Additionally, I did verify that the sentry-cli debug-files find determined that id to be missing.

Now that those additional files were uploaded, I will need to wait and see if upcoming events have better stack trace information.

Thank you for following up on this.

szokeasaurusrex commented 5 months ago

Sounds good @iwclibro! Please let us know if you continue to see missing debug files after making this change.

iwclibro commented 4 months ago

I am seeing solid stack traces for my events now. I consider this issue resolved. Thank you for your help!

szokeasaurusrex commented 4 months ago

Great! In that case, I am closing this issue. Please reopen if the issue resurfaces!