Olá Everton, tudo bem?
O erro "500 Internal Server Error" geralmente indica que ocorreu um erro interno no servidor durante o processamento da requisição. Nesse caso específico, é possível que o erro esteja relacionado à serialização do objeto para XML.
Ao retornar o objeto diretamente no método do recurso e utilizar o método .toXML() para converter o objeto em XML, o servidor consegue realizar a serialização corretamente e retornar o resultado esperado.
Você poderia compartilhar seu código conosco?
Uma dica antecipada, confere se todas as classes utilizadas no objeto que está sendo retornado estão corretamente anotadas com as anotações JAXB, como @XmlRootElement, @XmlElement, etc. Essas anotações são necessárias para a serialização correta do objeto para XML.
Recomendo também verificar as mensagens de log do servidor de aplicação para obter informações mais detalhadas sobre o erro. Verifique os logs de erro do servidor para identificar possíveis exceções lançadas durante o processamento da requisição.
Se mesmo após essas verificações o problema persistir, pode ser útil compartilhar o código relevante do recurso e das classes relacionadas para uma análise mais aprofundada.