Um código de status 500
significa que o código em execução no Tomcat foi com erro; você deve encontrar um rastreamento de pilha nos logs.
Tenha em mente que as solicitações desses não-navegadores serão diferentes de maneiras sutis; o hit do Facebook é HTTP/1.0
, por exemplo.
É provável que o seu código esteja procurando algo nos cabeçalhos ou nos cookies de solicitação que estejam lá com a solicitação do navegador e não nas solicitações do bot.