When the VRChat API serves a 500 API while uploading an avatar, the only error reported is a generic "Application error" exception. No entry in the log clearly indicates that a server-generated 500 error was the cause, unless API Logging is enabled (which contains URLs which probably shouldn't be shared widely).
This can cause a lot of difficulty in understanding why an upload is failing; the SDK should clearly call out in the logs 4xx or 5xx errors from the API, and should surface these in the upload failed message.