Yes, the problem is that only some of your log lines are JSON -- in particular, "Starting server on port 5000/udp" is not valid JSON, and the JSON reader notices as soon as it tries to read the first character ('S').
A simple solution would be to add json.ignore_decoding_error: true to your configuration, but this would throw out all JSON errors, not just the ones caused by other types of output. A more robust alternative would be to filter out the lines that shouldn't use the JSON parser, e.g. in your filebeat.inputs configuration you could add:
include_lines: ['^\{']
however this version doesn't work for me as that regular expression is incorrect and I can't figure out why right now (I also tried '^{', '^\\{' and '^\\\{' XD), maybe someone else can jump in with the right syntax to match an open-brace at the start of a line