We're Hiring!

Mattermost, Inc.

Base64 TriggerID Decoding Fails

I’ve been having an issue with Mattermost failing to decode the triggerID I send to create a dialog. Mattermost sends a triggerID, I grab it, and in my JSON I return the same triggerID. I’ve gone through myself to grab them both and be sure I’m returning the proper triggerID, I see no issues anywhere that should be causing it.
Console log:

{"level":"error",
"ts":1604334841.4696991,
"caller":"mlog/log.go:229",
"msg":"Failed to decode base64 for trigger ID for interactive dialog.",
"path":"/api/v4/actions/dialogs/open",
"request_id":"b1cjnzffrjb7ude1igi9ghfnxe",
"ip_addr":"172.18.0.2",
"user_id":"5pru7mxtmjfz8yhby4ndw9q39h",
"method":"POST",
"err_where":"DecodeAndVerifyTriggerId","
http_code":400,
"err_details":"illegal base64 data at input byte 216"}

Looking at byte 216, I found nothing that would result in an error. I have no issue decoding this string on my side in Java, but know that this error originates from the Golang base64 decoder.

Anyone have an issue similar, or know a fix?
Thanks.

(Example triggerID, taken from my latest attempt)

Mattermost sends:

trigger_id=NjV0bjN3NHRhN2dqdHI4NDZiY3VlYmpwcWU6aTF1aWljeXJuN2RianhiM2JwcWdreDFxMXk6MTYwNDMzNDg0MTM1MDpNRVVDSVFDQzFDTTRFVHpXRENEZ243ZDBqSmFUWStzNXZ4cENvbDlWMWx5bVREU3BYd0lnVHpIbE0rdUNqaXhIcTZLb0tTRnhqR1hFZUpwSmJoOHAzRXFLL0FWbFB3UT0

I give it back:

"trigger_id":"NjV0bjN3NHRhN2dqdHI4NDZiY3VlYmpwcWU6aTF1aWljeXJuN2RianhiM2JwcWdreDFxMXk6MTYwNDMzNDg0MTM1MDpNRVVDSVFDQzFDTTRFVHpXRENEZ243ZDBqSmFUWStzNXZ4cENvbDlWMWx5bVREU3BYd0lnVHpIbE0rdUNqaXhIcTZLb0tTRnhqR1hFZUpwSmJoOHAzRXFLL0FWbFB3UT0"

Mattermost’s method of base64 decode (find DecodeAndVerifyTriggerID)

Update for anyone who may run into the same issue: it looks like because the data is in a urlencoded form, my parsing of it was weird and might’ve removed the equal signs at the end of the triggerID. My call isn’t working still, but I believe it’s due to other errors now. Will update when the whole api call works to confirm.