5

When I upvote a comment on a user which has been deleted, the app will simply crash. I've tested it on Meta Arquade, but I cannot seem to find any deleted users on the normal site. I'm using the new version of the app, 1.6.0.

This does NOT happen on locked posts. Before when I did this, it turned

User404

Into

Community

I have reproduced the problem twice, it seems to keep the up-vote, but still crash the app. It also happens on answers. Reproduction test link:

Am I allowed to stand up against something I disagree about?

Why is asking on how or where to find upcoming updates for a game Not Constructive?

I'll try to find some on the normal site, as well as other sites.

  • App Version: 1.6.0.10
  • Device: iPhone 6
  • OS Version: Version 10.0.2 (Build 14A456)

I put one of the error logs on paste bin because the log was 70 KB large (you might want to click raw text)

5
  • Note: User404 is not a real user (or at least they weren't deleted) Commented Oct 1, 2016 at 4:36
  • I'm going to start a bounty if this doesn't get answers soon Commented Oct 2, 2016 at 20:27
  • Scrap my last comment, I upvoted the wrong comment, can repro :)
    – Cai
    Commented Oct 3, 2016 at 9:03
  • @Cai good it's not just me Commented Oct 3, 2016 at 15:09
  • 1
    There's no need to delete the actual bug report just because it is fixed
    – Cai
    Commented Oct 21, 2016 at 6:18

3 Answers 3

3

This will be fixed in 1.6.1.1, shipping next week.

There appears to be a bug (or just shortcoming) on the server where upvoted comments don't return a user object in the reply.

We used pretty up (map to "Community", add diamond) display names with a static method +[SEUserHelper attributedDisplayNameForUser:] This was much guaranteed never to return nil because if the user was nil it would erroneously display "Community". Now we have a non-static category method -[SEAPIUser attributedDisplayName] which can in fact return nil because of Objective-C nil chaining. This causes -[NSMutableAttributedString appendAttributedString:] to crash.

So now, when you upvote a comment, we copy the user from the old comment object to the new one before replacing it. We also omit the owner if they're nil for whatever reason.

0
2
+100

You should send the auto generated crash report to the devs. You can find the report by going to SettingsPrivacyDiagnostics and UsageName + TimeStamp of Crash. And submit a bug report by going to: StackExchange.app (what you are probably viewing it in) →Menu (three lines stacked) →aboutSubmit Bug Report.

My crash reports pane (lel)

1
  • Or use the Devices window in Xcode to view the device log (see my answer)
    – JAL
    Commented Oct 3, 2016 at 21:59
1

Reproduced on my iPhone 6 running iOS 9.3.4:

Oct  3 23:52:14 Joshs-iPhone Stack Exchange[6686] <Warning>: QC Measurement: ERROR -  beginMeasurementSessionWithAPIKey was already called.  Remove all beginMeasurementSessionWithAPIKey, pauseSessionWithLabels, resumeSessionWithLabels, and endMeasurementSessionWithLabels calls when you use setupMeasurementSessionWithAPIKey.
Oct  3 23:52:16 Joshs-iPhone Stack Exchange[6686] <Error>: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString replaceCharactersInRange:withString:]: nil argument'
    *** First throw call stack:
    (0x180faedb0 0x180613f80 0x180faecf8 0x180f54504 0x1818a5264 0x100ca21f4 0x100ca240c 0x100cb495c 0x100ca4650 0x100cf5a5c 0x186235444 0x1861f2ff8 0x1863205c0 0x186302878 0x100ca9aa8 0x100a07eb4 0x100d2fa78 0x100d2c7c0 0x100cad1d8 0x100cf8c70 0x100ca877c 0x100cea574 0x181968540 0x1818ba870 0x1818aae48 0x18196a934 0x1809f947c 0x1809feb84 0x180f64d50 0x180f62bb8 0x180e8cc50 0x182774088 0x186176088 0x1000a1c2c 0x180a2a8b8)

Looks like the app is doing some string manipulation (possibly by using stringByReplacingCharactersInRange:withString:) with a nil input (maybe some user profile information that is no longer available due to the deletion of the user).

I am not a Stack Exchange employee, so I cannot symbolicate the stack trace. This was taken from the device log.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .