Problemas no envio de JSON por POST quando executado o .jar

Estou com uma aplicação cujo um dos módulos é responsável pelo envio de um JSON para uma API online que faz a sincronização dos dados com um sistema retaguarda. Quando esse módulo é executado ou debugado em uma IDE, ele realiza essa tarefa com sucesso, porém, quando executado na aplicação instalada no Windows (.jar) o mesmo não funciona e retorna um erro 500 da API, da qual já entrei em contato com o desenvolvedor dela e o mesmo não consegue disponibilizar o log pra mim por ser um handler. Cogitei a possibilidade de ser então permissões ou algum bloqueio no firewall já que na IDE funciona e na aplicação não, portanto desativei tudo e continuou com o mesmo problema. É usado a biblioteca javax.net, inclusive em um outro módulo que é feito uma requisição parecida com menos fluxo de dados, ela se comunica com a API corretamente.

Segue o trecho do código em que é feito o envio:

    URL url = new URL(urlPost);
    HttpsURLConnection con = (HttpsURLConnection) url.openConnection();

        UploadRetaguardaModel upload = new UploadRetaguardaModel();
        upload.montarJsonPrincipal();
        JSONObject main = upload.mainObject;
        upload.closeConnection();

    try {

        //add request header
        con.setRequestMethod("POST");
        con.setRequestProperty("User-Agent", USER_AGENT);
        con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
        con.setRequestProperty("Accept-charset", "UTF-8");
        con.setRequestProperty("Content-Type", "application/json");
        con.setDoOutput(true);

        // Send post request
        OutputStream os = con.getOutputStream();
        os.write(main.toString().getBytes());
        os.close();

        int responseCode = con.getResponseCode();

        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();
        [...]
    }