Cannot get emojis to work

Technical Support
  • @pitaj
    This is the full error I see. There is no more text.
    But yes, it is public:
    -> Forum

    in the category "Neuigkeiten" I for now allowed to create and edit topics for guests so that you can try it without logging in.

    Thank you very much!

  • @majr please check the url value in your config.json. It appears that you left the :4567 port at the end, while your site is not publicly at that port. The url value in config.json should be set to exactly the URL at which you access your site:

  • @pitaj
    oh my goodness - that was it! I feel very stupid now. Thank you very much!!!

  • Hello!
    Sorry to intrude, but I have an issue with emojis too.
    I can't get them to work since I tried adding new ones since my latest nodebb upgrade.

    I'm on nodebb v1.16.2
    node v14.16.0

    I've had them working in the past without any issue.
    Since I've updated to v1.16.2 everything was working fine then I tried adding some new emojis and from there the issue started.

    Once I added emojis as usual, I had this error Failed to load emoji metadata on the frontend and the backend.
    I tried the 'Build Emoji Asset' button and a new error Cannot read property forEach of undefined showed up.

    I had the latest nodebb-plugin-emoji plugin and the nodebb-plugin-emoji-android activated.

    I did a ./nodebb build and everything went fine but the issues were still there.

    I tried deactivating the plugins, deleting them and installing them again but the issue is still there.

    I deleted the nodebb-plugin-emoji-android and tried the nodebb-plugin-emoji-apple since the last one shows to be v1.16.2 compatible but nothing new happened here.

    When I run a ./nodebb log I get this:

    error: [emoji] Failed to retrieve data for parse ENOENT: no such file or directory, open '/var/www/nodebb/node_modules/nodebb-plugin-emoji/build/emoji/table.json' {"errno":-2,"code":"ENOENT","syscall":"open","path":"/var/www/nodebb/node_modules/nodebb-plugin-emoji/build/emoji/table.json","stack":"Error: ENOENT: no such file or directory, open '/var/www/nodebb/node_modules/nodebb-plugin-emoji/build/emoji/table.json'"}

    So it seems that I'm missing a table.json file but I have no clue where to find it.

  • @taloche if Build Emoji Assets isn't working there's something weird going on. Do you have any custom emoji or extensions?

    The issues your described are all related. table.json is the emoji metadata, it's produced when you build emoji assets. So the failure to build is causing the other issues.

    What version of those plugins are you on?

  • @pitaj hi! Thanks for the reply on a Saturday.
    No custom emoji or plugin installed.
    nodebb-plugin-emoji : 3.5.0-0
    nodebb-plugin-emoji-apple : 2.0.5

    I only had personal emojis added through the nodebb-plugin-emoji plugin with the pencil button.

    Other plugins installed, all up-to-date


  • @taloche what database are you on?

  • @pitaj MongoDB 4.0.13

  • @taloche alright can you give me the output of the following, executed in the mongo shell:

    > use <your nodebb database name>
    > db.objects.find({ _key:'emoji:customizations:emojis' })
    > db.objects.find({ _key:'emoji:customizations:adjuncts' })
  • @pitaj said in Cannot get emojis to work:

    db.objects.find({ _key:'emoji:customizations:emojis' })

    { "_id" : ObjectId("603a50a7a1600fa8ea4ebcb9"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"zlatan\",\"image\":\"78682101-8e02-479f-b9aa-254c05ec81b0-zlatan.gif\"}", "score" : 4107924063 } { "_id" : ObjectId("5f6f10a73bac327071ff4b98"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"volet\",\"image\":\"aa0b81cb-93af-4392-9c3a-11089e8773a7-volet.gif\",\"aliases\":[\"volet\"],\"ascii\":[\":volet:\"]}", "score" : 183096193 } { "_id" : ObjectId("603a51c3a1600fa8ea4ebe92"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"volet\",\"image\":\"69eb706a-4bce-4e92-9f59-49187bb3058c-volet.gif\"}", "score" : 4107924065 } { "_id" : ObjectId("5f6f0ed83bac327071ff478d"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"travolta\",\"image\":\"\",\"aliases\":[\"travolta\"],\"ascii\":[\":travolta:\"]}", "score" : 2013979170 } { "_id" : ObjectId("5ba8b070fba89e16361c51ce"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"tap\",\"image\":\"c7d9ce19-5479-4144-9eb8-c5762cb11d29-taptap.gif\",\"aliases\":[\"tap\"],\"ascii\":[\":tap:\"]}", "score" : 193426144 } { "_id" : ObjectId("5ba82060fba89e16361c50d5"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"sweat\",\"image\":\"89c94d76-333a-4cdd-bb73-71eb42792bcf-sweat.gif\",\"aliases\":[\"sweat\"],\"ascii\":[\":sweat:\"]}", "score" : 182959441 } { "_id" : ObjectId("5ba8b056fba89e16361c51cd"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"shit\",\"image\":\"a0f68a7c-ad32-41fe-b975-2c000f8f1d3d-shit.gif\",\"aliases\":[\"shit\"],\"ascii\":[\":shit:\"]}", "score" : 2087960707 } { "_id" : ObjectId("5ba8b040fba89e16361c51cc"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"score\",\"image\":\"9c4c85c6-835c-4932-aba5-e239ad432af8-score.gif\",\"aliases\":[\"score\"],\"ascii\":[\":score:\"]}", "score" : 165577581 } { "_id" : ObjectId("5ba820a8fba89e16361c50da"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"roll\",\"image\":\"e11c2a80-4b2d-4992-b861-17f9fe31a48b-roll.gif\",\"aliases\":[\"roll\"],\"ascii\":[\":roll:\"]}", "score" : 2087659768 } { "_id" : ObjectId("5ba8ab38fba89e16361c519f"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"rambo\",\"image\":\"569b3ce0-0246-4268-9563-ef8b26569ac5-rambo.gif\",\"aliases\":[\"rambo\"],\"ascii\":[\":rambo:\"]}", "score" : 181302582 } { "_id" : ObjectId("5ba8aff3fba89e16361c51cb"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"ragix\",\"image\":\"a607eb30-7eb4-4735-8cc8-9f685a158a28-ragix.gif\",\"aliases\":[\"ragix\"],\"ascii\":[\":ragix:\"]}", "score" : 196892672 } { "_id" : ObjectId("5ba8afd1fba89e16361c51ca"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"quoi\",\"image\":\"725413ba-e3d8-444b-8ab2-ce8625f77fca-quoi.gif\",\"aliases\":[\"quoi\"],\"ascii\":[\":quoi:\"]}", "score" : 2087834311 } { "_id" : ObjectId("5ba8afb3fba89e16361c51c9"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"prince\",\"image\":\"69ef238a-1c85-4fd8-81d0-eecb4f9f1d4a-prince.gif\",\"aliases\":[\"prince\"],\"ascii\":[\":prince:\"]}", "score" : 1158221606 } { "_id" : ObjectId("5ba8af8dfba89e16361c51c8"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"prefet\",\"image\":\"bb17e2b1-35ee-4453-8db9-9af89a998cae-prefet.gif\",\"aliases\":[\"prefet\"],\"ascii\":[\":prefet:\"]}", "score" : 1747141653 } { "_id" : ObjectId("5bd8d37efba89e16361c8ffa"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"poppop\",\"image\":\"81981a9f-0fc2-4e70-8710-6dc8b6242538-poppop.gif\",\"aliases\":[\"poppop\"],\"ascii\":[\":poppop:\"]}", "score" : 1900822949 } { "_id" : ObjectId("5ba8af70fba89e16361c51c7"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"police\",\"image\":\"f3715bf2-0e15-405e-b926-57512bad6dca-police.gif\",\"aliases\":[\"police\"],\"ascii\":[\":police:\"]}", "score" : 1158055545 } { "_id" : ObjectId("5ba8af56fba89e16361c51c6"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"passe\",\"image\":\"2652e883-9dd5-4d97-aeb6-29b2234f312d-passe.gif\",\"aliases\":[\"passe\"],\"ascii\":[\":passe:\"]}", "score" : 165785681 } { "_id" : ObjectId("5fbcd71e269ac9fb20789ebb"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"paf\",\"image\":\"c9d73d5d-7698-4998-bc97-e73903d5f842-paf.gif\",\"aliases\":[\"paf\"],\"ascii\":[\":paf:\"]}", "score" : 193410802 } { "_id" : ObjectId("5f6f0c3f3bac327071ff417e"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"oo\",\"image\":\"f34d71cc-7f29-45a4-808e-64d33b496616-OO.gif\",\"aliases\":[\"oo\"],\"ascii\":[\":oo:\"]}", "score" : 5861221 } { "_id" : ObjectId("5ba8af35fba89e16361c51c5"), "_key" : "emoji:customizations:emojis", "value" : "{\"name\":\"okay\",\"image\":\"d0771315-c0fa-4849-8620-51977faa691d-okay.gif\",\"aliases\":[\"okay\"],\"ascii\":[\":okay:\"]}", "score" : 2088415001 } Type "it" for more

    db.objects.find({ _key:'emoji:customizations:adjuncts' })

    Works but doesn't return anything.

  • @taloche running the following mongo command will rename the set emoji:customizations:emojis to emoji:customizations:emojis:bkp, to essentially make it act as if you deleted the prior.

    db.objects.update({ _key:'emoji:customizations:emojis' }, { $set: { _key: 'emoji:customizations:emojis:bkp' } }, { multi: true })

    Try running that then building emoji assets.

  • @pitaj said in Cannot get emojis to work:

    db.objects.update({ _key:'emoji:customizations:emojis' }, { $set: { _key: 'emoji:customizations:emojis:bkp' } }, { multi: true })

    Thanks a lot @PitaJ.
    As promised the "Build Emoji Asset" works again.

    I tried playing around with it again and managed to get the errors back again.
    It seems that if you by accident hit the "check" at the end of the line before putting the "ASCII patterns" it messes up the line and the errors are back.

    But after a fresh install of everything I can't reproduce these errors.

    Thanks again!

    EDIT: it seems that if you leave a character in an empty line added by mistake at the end, for example, the errors are back if you save then build.

  • @taloche I'm having trouble understanding what you mean. Could you give an example? I'd like to implement a validation step to prevent that if possible.

  • @pitaj sorry!

    For instance, on a first line, you enter a name, then upload an gif, then type the alias, hit the '+' button to validate the alias, then you type the ASCII Pattern but there instead of hitting the '+' button to validate the ASCII Pattern, you hit the Green check button at the end of the line, your ASCII Pattern is moved to a new (empty) line.

    So this

    Gives you this
    Screenshot_2021-02-27 Plugins Emoji Panneau d'administration NodeBB(1).png

    And if you save and build this by mistake because, like me, you're not paying too much attention, you get the errors I got.

    I hope you appreciate the artistic efforts to illustrate the issue.

  • @PitaJ Sorry to bother you again, but is there any chance there's a workaround where we could use the emoji-plugin without having to use another emoji pack like the apple, android, etc... ones?
    I only like to use on our forum, our gifs and homemade smilies.

    On the frontend with CSS, I hide the toolip bar in the simlies window so only our gifs show up but when you use the search bar you end up seeing the other emoji pack.
    If I remember correctly you had made that possible with the old nodebb-plugin-emoji-extended

  • @taloche have you tried just disabling all of the packs? I just tried that and it seemed to work, showing only the custom emoji.

  • @taloche thanks for the example. Like you, I wasn't able to reproduce the issue unfortunately.

  • @pitaj I believe that's what I did before the upgrade. The emoji-android pack was disabled.
    Have you tried to add a new emoji now that you've disabled the pack?
    I've just entered our 156 personal emojis, now that it's working again, I'm a bit afraid to play with it.
    After your help, I managed to get the errors again on 3 occassions, but once it was working I didn't manage to reproduce it.
    I guess that with the clean slate you gave me, I did the plugin adding, build asset, nodebb build in the correct order.

  • @PitaJ seems to work. Disabled the emoji-pack. Did a ./nodebb build after stopping nodebb. I was able to add a new emoji, then hit the 'build asset' button. Stopped nodebb again, did another ./nodebb build, went back to the emoji panel, no issues, no errors.
    Thanks again for the help, sorry I wasn't able to find what went wrong.

Suggested Topics