So, how is that @ thing supposed to work anyway?

Whenever I try to reply or refer to another Doper in a post using the @username convention, it never seems to work the way I expect. When I type the @ character, it shows me a list of user names (which I thought was supposed to be everyone who had already posted in the thread). And as I type the user name the list shrinks to match what I’ve typed, but here’s the thing – it never shows me the name of the user I’m looking for. I wind up having to type the entire user name in.

So, am I doing this wrong, or just not understanding how it is supposed to work?

If you are, then so am I. You’d think it would prioritize users in the thread or at least narrow it down by elimination as you type like a Netflix search.

Hey there @Shoeless well it seemed to work when I did it, idk.

When I type @, I get the 3 of you as the only options.

Same here, but it’s the first time it’s ever worked for me. Maybe it has something to do with the length of the thread.

The username search is broken, there’s a big discussion of it in this thread:

Ah thanks @DemonTree (yes, it worked that time, but it’s a short thread with only four usernames in the list). So my best bet is to just type @ and look through the list - anything I type after that and all bets are off.

I figured this was probably covered in one of the early Discourse how-to threads, but searching for just the @ character is not terribly helpful.

Oh, so we do have a dedicated topic on this. So let’s see what I get when I type the at symbol in this topic @

(frequent posters is in order of post count, note that the first two people posted more than once.)

This looks consistent based on the participants in the topic. As you type more, note that it will match both on the username and the full name, that is:

@crom

Matches

@susan perfectly cromulent

I am guessing this is an issue with megatopics where there are thousands of participants? I see absolutely no problem in this topic. Perhaps some better, more specific examples would be in order?

At the esteemed @codinghorror’s request I’ll try to summarize in this OP the experience we’re having with this strange, buggy, or both feature.

First … my personal expectation of proper function which seems to be commonly shared.

When entering a reference to a user into a post I expect to type an @ symbol, followed by a letter. Which will populate a pop-up dropdown with “all” (see below) users whose name starts with that letter. When I keystroke a second letter the filter will change to “all” users whose name starts with those 2 letters. etc., for 3, 4, 5, etc letters. As the filtering gets more extensive, the list should shorten towards just a few matches. So that eventually I get a short list of 1 to, say, 4 names that include my target user.

plus/minus a couple complicators.

  1. Having come from vBulletin, we know people by the Discourse “Username” field, not the “name” field. The vast majority of our users have a name field value of “”. I (/we?) understand and accept that Discourse also searches the words contained in the name field and includes them in the result set. Which results in what looks like some false positives.

  2. We would expect the returned list of matching users to be sorted into 3 groups, and alphabetic by username within each group. The groups are: a) users who have posted in this thread. b) “active users” = users who have posted to any thread “recently”, where recently might be in some fixed range such as last week, last month, or last year. c) all remaining users.

  3. The fact the dropdown is short (typically 5-6 users) is a problem since we have 300K total historical users and barely 1K active users. Useless matches to dead posters are the 99.7% likely case.


With that preliminary out of the way here's the behavior we see:

Type @N and see the popup return these users: N, Not-a-robot, Norse, Nicostorm, NormanPaperman, and NoGraceUnderPressure. Which are in no order we can determine. Oughta be alpha. All of these users haven’t been seen in decades, whereas there are many active users starting with N.

Continue typing so now we have @No` and see the popup return these users: Not-a-robot, Norse, NormanPaperman, NoGraceUnderPressure, noahjohn, and notanamesake. Again out of any logical sequence and all ancient long-dead users.

Continue typing so now we have @Nor and see the popup return these users: Norse, NormanPaperman, NoraHensl, NorseInvalidUser, NoGraceUnderPressure and FigNorton (whose name field is “Mark Norton”). Again out of any logical sequence and only FigNorton is not an ancient long-dead user.

Continue typing so now we have @Nort and see the popup return only this one user: FigNorton. But where is the equally active user “@NorthernPiper”? Why is he not there?


Trying a different case, let’s find our currently prolific user @puzzlegal.

Typing @p returns 6 different users, but at least 2 of them are currently active. @pu returns only 3 users, none of whom are our target. @puz returns nothing. Why not?

And my experience is different. If I type “@”, I get Codinghorror and LSLGuy - the two contributors to this thread. If I type “@” followed by a letter, I get names that I recognise. I don’t see a pattern to them, but they’re posters that have been active recently.

@c brings up Codinghorror and Czarcasm, and other names taht I don’t recognise immeidately, but I’ve seen around.

@b brings up Babale, BlankSlate and BrinyDeep.

so, it’s not perfect, but it does work. If know a full name and start typing it, like @Spoons, it brings up Spoons.

Erratic and unpredictable.

Moderator Note

The last two posts (by Northern_Piper and LSLGuy) were moved into this thread at the request of codinghorror. These posts were originally in a separate new thread.

It is not only threads with thousands of participants (don’t think there are any).

I’ll try it with a user in this thread, Elmer_J.Fudd:

I type ‘@’ and get 4 or less names on my phone. There are more than 4 posters in the thread, and Elmer does not appear.

Type ‘@E’ and I get users E, Eburacum_45, EllisDee, Enjoy_Slurm.

@El’ get EllisDee, ElmsdaleGil.

@Elm’ just get ElmsdaleGil.

@Elme’ nothing pops up.

Where is Elmer_J.Fudd?

There are two issues with the search IMO. The biggest is that it doesn’t find all users that match the search string. The second is that it doesn’t prioritise active users over long-gone users in the matches, which is a particular problem for this elderly and long lived forum.

Yeah, the behavior is a bit odd, even in this topic. We may have regressed. Typing @ by itself results in the most sensible behavior… but the second you start typing characters after that, it seems to forget about topic participants entirely. :confounded:

I can definitely repro in this topic, so let me see what we can do to improve this, it very much feels like a bug.

There’s also the issue that, at least for us, sometimes people who should pop up don’t.

I pointed out that typing @pu does not show our very active mod @puzzlegal, but only shows @Punkin, @punchrab, and @koenigSIGG. We think there might be something up with our username database that is causing the search to choke.

We also note that this behavior is the same when you do a username search in the advanced search tab, as they likely use the same engine.

That’s what he just said.

You’re correct. But that then leaves me another issue, where scrolling down sometimes seems to skip down past the second half of a longer post. I’ve never been sure if I accidentally just glossed over it, but this time I’m sure I didn’t see it at all, as I would have noticed mention of the exact example I used.

Anyways, allow me to replace that with another issue, then: sometimes (and it’s not predictable), the dropdown list will start near the bottom of the page and thus not fit. It would be good if it could do an extra check to make sure the overlay fits on the screen, and automatically move it up if it doesn’t.

Frankly, you should start a new topic if you’re going to bring up a different issue. This isn’t a general issues thread.

It’s also extremely… inconsistent.

The name matching works for some of the participants in this topic… for me, @demo matches DemonTree for example, but @big matches absolutely nothing relevant.

Anyways, thanks for reporting this, 100% legitimate bug of some kind, I currently suspect database migration data issues but we will get to the bottom of this because the current behavior is :crazy_face:

Thanks!