Event silently fails if description is longer than 1000 characters

Summary:

If an event description is over 1000 characters, it appears blank, or the previous event description shows.

This is caused by a hard limit in the discourse_post_event_events table : description character varying(1000)

Repro #1

  • Create an event
  • Have the event description (the text between [event] and [/event]) be over 1000 characters
  • The event description will not appear in the rendered post

Repro #2

  • Create an event
  • Have the event description (the text between [event] and [/event]) be under 1000 characters
  • Edit the event
  • Have the event description (the text between [event] and [/event]) be over 1000 characters
  • The previous event description will show in the rendered post

This also allows for search poisoning.

Related

The same seems to apply to the url and location fields

Expected

One of:

a) the event description should be unlimited
b) a clear warning is shown when the event description is too long
c) the event description is cut off while rendered (while the full text is still retained in the markdown)

6 Likes

Thanks for this.

IMHO, option (c) without warning is also insufficient. If I get a vote, (a) is the best solution.

1 Like

Repro on latest, tested today. A user reported a problem with Event cards not displaying, inexplicably. The topic saved normally, the Event markup was correct in the raw post, but no Event card appeared in the topic or elsewhere. There was no composer warning, save error, browser-console error, or relevant /logs entry.

I’d be in favour of b) a clear warning or validation error

While we’re here, the exact same behaviour (silent failure to display the card) also happens if for any other reason the Event markup can’t be parsed properly. In the case I was investigating a few months back, a user had diligently prepared their Event markup in Word then copy-pasted it into Discourse, resulting in automatic “Smart Quotes” around data= items, with the ensuing hilarity you’d expect.

So yes, a visible error, even if it’s just in the console, would be reeeeaally nice.

2 Likes