Fix

APIBreaking

Consistent request error codes

Three request errors now use the same code as the rest of the API, a 500 no longer carries internal detail, and two not-found errors gain a message.

Three request error codes did not match the rest of the API:

StatusBeforeNow
400destinations_invalid_providerdestination_invalid_provider
413validation_errorpayload_too_large
500unknown_errorinternal_server_error

The 413 is an upload to POST /image/upload over 100 MB, and the 500 is a failure to store or read a destination secret. If you branch on any of the old codes, switch to the new ones.

Every 500 now has the message Internal server error. Some used to carry a description of the internal step that failed.

task_not_found and api_key_not_found now include a message, like the other not-found errors. See request errors.