Fix API submission failures.

Make the handler bail early if there is no source.

Most of the handlers return messages in the 'reason' key, while only
one returns both 'reason' and 'message' keys. They are now combined
properly.