64 votes

Possible site bug: Cannot send PM with moose emoji as the subject

Tags: bug, emoji

Bringing this up NOT because I'm worried about it, but only because it's very odd and might interest people here:

I've been PMing people for my post in the Game Giveaway topic. For each one, I've just been making the subject of the PM the emoji they selected and nothing else.

I have successfully sent PMs with the following subject lines:

  • πŸ¦₯, πŸ¦†, 🐈, 🐸, πŸ¦„, πŸ™, 🦫, 🐌, πŸ‘», 🐣, πŸ»β€β„οΈ, πŸ–, 🐳, 🦚, 🦭, 😎

But when I use

  • 🫎

I get the following error message: subject: Length must be between 1 and 200. The PM fails to send.

I was able to send the PM by appending text to it, sending it with the subject line 🫎 Marvin (because that's his name), and the PM sent with the subject line Marvin without the emoji or space.

What's so different about the moose? Is it because he's wanted? πŸ˜‚

If anyone wants to test this for themselves, feel free to try it out in a PM to me.

18 comments

  1. [6]
    Wolf_359
    (edited )
    Link
    Outdated library on Tildes' end. I sent you a message with the goose, donkey, and jellyfish (among others serving as controls). The goose, donkey, and jellyfish are newer emojis, as is the moose....

    Outdated library on Tildes' end.

    I sent you a message with the goose, donkey, and jellyfish (among others serving as controls).

    The goose, donkey, and jellyfish are newer emojis, as is the moose. None of them work as subject lines. It has to do with when they were added is my guess.

    39 votes
    1. [3]
      nic
      Link Parent
      Emojis for reference Canadian Moose Canadian Goose Canadian Jellyfish Canadian Donkey They are effectively ignored for titles and subjects, so if your title or subject includes only these emojis,...

      Emojis for reference

      🫎 Canadian Moose

      πŸͺΏ Canadian Goose

      πŸͺΌ Canadian Jellyfish

      🫏 Canadian Donkey

      They are effectively ignored for titles and subjects, so if your title or subject includes only these emojis, then you effectively have a blank title or subject and the system complains.

      I believe there is a giant conspiracy against these wonderful Canadian animals.

      Some folks might mutter nonsense about Unicode 15, but they just want to distract you from the great Tildes Canadian Animal Emoji conspiracy.

      40 votes
      1. [2]
        IsildursBane
        Link Parent
        Considering it is a Canadian site, I think the only thing that we can take from this is that Deimos had a bad encounter with our wildlife

        I believe there is a giant conspiracy against these wonderful Canadian animals.

        Considering it is a Canadian site, I think the only thing that we can take from this is that Deimos had a bad encounter with our wildlife

        28 votes
        1. kfwyre
          Link Parent
          Alternate theory: Marvin is on the run from the law and his fellow Canadian fauna are helping him to evade capture by scrubbing his and their digital footprints. What we’re seeing here is the work...

          Alternate theory:

          Marvin is on the run from the law and his fellow Canadian fauna are helping him to evade capture by scrubbing his and their digital footprints.

          What we’re seeing here is the work of a highly sophisticated network of wildlife nation-state hackers.

          16 votes
    2. [2]
      Zorind
      Link Parent
      I just looked that up too, it looks like Moose was added in 2022 whereas the ones that work were all added earlier (like the Sloth in 2019). Did the donkey and jellyfish both not work either?

      I just looked that up too, it looks like Moose was added in 2022 whereas the ones that work were all added earlier (like the Sloth in 2019).

      Did the donkey and jellyfish both not work either?

      8 votes
      1. Wolf_359
        Link Parent
        Yeah, they don't work either. Updated my previous comment to clarify that.

        Yeah, they don't work either. Updated my previous comment to clarify that.

        8 votes
  2. [3]
    kfwyre
    Link
    New info: I originally had the title as Possible site bug: Cannot send PM with as the subject After I posted it, the moose got taken out and it read: Possible site bug: Cannot send PM with as the...

    New info: I originally had the title as

    Possible site bug: Cannot send PM with 🫎 as the subject

    After I posted it, the moose got taken out and it read:

    Possible site bug: Cannot send PM with as the subject

    I have since edited the title, but it's now looking like 🫎 simply gets removed from titles/subjects for some reason?

    16 votes
    1. [2]
      chocobean
      Link Parent
      What a strange bug! What other emojis cant we use for titles!

      What a strange bug! What other emojis cant we use for titles!

      7 votes
      1. zakhar
        Link Parent
        Based on https://tildes.net/~test/1osu, avoid emoji added in v14 or later (except ones that use a zero width joiner and existing emoji).

        Based on https://tildes.net/~test/1osu, avoid emoji added in v14 or later (except ones that use a zero width joiner and existing emoji).

        9 votes
  3. [4]
    Pistos
    Link
    Did a little drilling part way into this. So, I'm supposing it's Tildes' use of the marshmallow Python library. Testing that library's Length function in isolation, it doesn't look like it has any...

    Did a little drilling part way into this. So, I'm supposing it's Tildes' use of the marshmallow Python library. Testing that library's Length function in isolation, it doesn't look like it has any problem detecting the length of the moose emoji (length of 1), as seen here:

    >>> from marshmallow.validate import Length
    >>> length_validator = Length(min=1, max=200)
    >>> length_validator('hi')
    'hi'
    >>> length_validator('')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/home/dev/git/ultimatevocalremovergui/venv/lib/python3.11/site-packages/marshmallow/validate.py", line 425, in __call__
        raise ValidationError(self._format_error(value, message))
    marshmallow.exceptions.ValidationError: Length must be between 1 and 200.
    >>> length_validator('🫎')
    '\U0001face'
    

    If it considered it to have length 0, it would have raised a ValidationError, but it didn't.

    So, my hypothesis at this point is that something is stripping the moose emoji out before it gets to the validator. When I test some Tildes-specific code, I don't get the validation error for a string with the moose emoji:

        schema = TopicSchema()
    
        result = schema.load({"title": "hello"})
        result = schema.load({"title": "πŸ¦₯"})
        result = schema.load({"title": "🫎"})
    

    Stopping my debugging here, but I think something's processing the title before it gets to the length check code.

    12 votes
    1. Bauke
      (edited )
      Link Parent
      You are correct! Specifically this section is removing our moose friend. In [6]: from tildes.lib.string import simplify_string In [7]: simplify_string("") Debug: Category Cn Out[7]: '' <-- Empty...

      but I think something's processing the title before it gets to the length check code.

      You are correct! Specifically this section is removing our moose friend.

      In [6]: from tildes.lib.string import simplify_string
      In [7]: simplify_string("🫎")
      Debug: Category Cn
      Out[7]: '' <-- Empty title! Oops
      

      The moose is falling under the Cn Unicode category in that function and is being filtered out of the string.

      While for example our frog friend falls under the So category and doesn't get filtered out.

      In [8]: simplify_string("🐸")
      Debug: Category So
      Out[8]: '🐸'
      

      I've made an issue for it in GitLab: #831

      13 votes
    2. [2]
      creesch
      Link Parent
      I suspected it had to do with string sanitation somewhere, so did a quick search. I am guessing that these two functions are responsible. The simplify_string comment already explains what is...

      I suspected it had to do with string sanitation somewhere, so did a quick search. I am guessing that these two functions are responsible.

      The simplify_string comment already explains what is happening.

      Sanitize a string for usage in places where we need a "simple" one.

      This function is useful for sanitizing strings so that they're suitable to be used in places like topic titles, message subjects, and so on.

      Strings processed by this function:

      • have unicode chars from the "separator" category replaced with spaces
      • have unicode chars from the "other" category stripped out, except for newlines, which are replaced with spaces
      • have leading and trailing whitespace removed
      • have multiple consecutive spaces collapsed into a single space

      The _sanitize_characters function strips out characters belonging to the "Other" (C) Unicode category, with a few exceptions.

      "other" chars (control, formatting, etc.) - filter them out except for

      And since the python version tildes is running against doesn't include the latest unicode some emojis are filtered out.

      I guess the solution is to update python. Or, not sure if this is a thing, import the unicode library from elsewhere as dependency to be more easily updated.

      @Wolf_359 ^ Almost correct, outdated python not a library ;)

      Dammit @Bauke beating me to the punch :P

      8 votes
      1. Wolf_359
        Link Parent
        That tracks! I'm usually almost correct.

        That tracks! I'm usually almost correct.

        5 votes
  4. [2]
    ZeroGee
    Link
    As someone who works in software testing, these types of cases always fascinate me. https://emojiguide.org/moose Keywords animal (114) Windows Alt-code Alt+1face Decimal HTML Entity &#129742; Hex...

    As someone who works in software testing, these types of cases always fascinate me.

    https://emojiguide.org/moose

    Keywords
        animal (114)
    Windows Alt-code
        Alt+1face
    Decimal HTML Entity
        &#129742;
    Hex HTML Entity
        &#x1face;
    UTF-16 hex
        0xd83e 0xdece
    Encoded URL
        %F0%9F%AB%8E
    Version
        Unicode 15.0
    Year
        2022
    
    9 votes
    1. Sodliddesu
      Link Parent
      This is like the exact "first customer walks into the bar and asks where the bathroom is" joke. Who would've ever guessed that a user would send a message with just a moose emoji? Yet, here we are...

      This is like the exact "first customer walks into the bar and asks where the bathroom is" joke.

      Who would've ever guessed that a user would send a message with just a moose emoji? Yet, here we are and kfwyre has sent a veritable zoo.

      7 votes
  5. [2]
    Apocalypto
    Link
    Why don't I ever get bugs like this? Why don't the people who pay us to customize Microsoft Dynamics 365 for Finance & Operations ever save things with just an emoji in the title field? Have they...

    Why don't I ever get bugs like this?
    Why don't the people who pay us to customize Microsoft Dynamics 365 for Finance & Operations ever save things with just an emoji in the title field?
    Have they no whimsy?

    7 votes
    1. Sodliddesu
      Link Parent
      If it's any consolation, Cisco Jabber allows you to put a camel emoji in the title field for a chat - Hump days have never been the same since that discovery

      If it's any consolation, Cisco Jabber allows you to put a camel emoji in the title field for a chat - Hump days have never been the same since that discovery

      4 votes
  6. WrathOfTheHydra
    Link
    I love seeing random QA in the wild. On a separate note, I was very entertained by your giveaway methods, and I hope to see more eccentric methods in the future. :^)

    I love seeing random QA in the wild. On a separate note, I was very entertained by your giveaway methods, and I hope to see more eccentric methods in the future. :^)

    5 votes