Our Personal Data Server from scratch! tranquil.farm

Discord verification fails to send due to Invalid Form Body #144

Open timtinkers.online
Open opened by timtinkers.online

Two users independently flagged this to me because they intended to create an account on our PDS but got stuck with the Discord verification with an error like this in the logs:

Sep 24 17:28:40 vps tranquil-server[647860]: 2026-09-24T15:28:40.099442Z  WARN tranquil_pds::comms::service: Failed to send 
comms comms_id=45f0ff35-429e-4438-8a49-848bb03d150e error=External service error: Discord DM channel creation returned 400 Bad 
Request: {"message": "Invalid Form Body", "code": 50035, "errors": {"recipient_id": {"_errors": [{"code": "NUMBER_TYPE_COERCE", 
"message": "Value \"timconspicuous\" is not snowflake."}]}}} permanent=false

I set up the Discord bot so I have a DM open and can verify with it, but it seemingly throws this error when trying to open a DM with a new user? I could have the bot in a Discord community of course but that still would exclude people from being able to verify who are not part of that Discord community.

Did I do something wrong here when setting up the bot? The error message seems to indicate to me a Discord username is passed instead of an id which causes the is not snowflake error, but I may well be mistaken.

Thanks for letting us know! That's... not good, I wonder if it would be fixed by your users first opening a chat with the bot themselves, since bots shouldn't be allowed to message people out of the blue first...

Makes sense! I will add the application to a few Discords I am in for now so there is less friction, but in our case we were open sign-up so we didn't know exactly who was going to sign up and couldn't always direct people to the bot profile beforehand, thus causing this.

So better instructions, do you think?

Hey Lewis, apologies for the super late reply, I wasn't really sure what to make of this issue and where those two previous people went wrong in messaging the bot first.

I am not sure if this is useful, but I asked a non-techy friend to walk through the steps with me and when they clicked on the bot URL shown in the Tranquil UI, they clicked "Add App" in Discord and added the bot to their "Apps", thinking this would do the trick. I had to remind them to read the page and actually do the /start <handle>.

Another small note from me: I think perhaps Tranquil should prompt the user to do /start handle: <handle> — Discord usually auto-completes the handle option, but it is possible (e.g. through copy-pasting, sometimes on mobile) to just type /start <handle> at which point the bot won't respond.

It seems like such a small hurdle, but it is quite frustrating to me because when I filed the issue, a friend of a friend seemingly gave up at this step and created an account on Eurosky instead.

I understand this won't work for ongoing comms, but for the one-time verification I wonder if it would be easier to do a "Verify with Discord" Oauth2 button. Otherwise yes, perhaps the /start step should be outlined more clearly/prominently. Idk, again, I understand it must seem like such a minor thing, but I have now seen three people struggle with it. 🤷

excellent feedback, i'll mull on this...............

Sign up or Sign in to add to the discussion.