Клиент написан на Си++ (Qt, cURL) и действует примерно так.
1. Идёт на
http://localhost:8080/crumbIssuer/api/xml
2. Разбирает XML и получает строчку
Jenkins-Crumb: 3de9f4007192ee43a96f2f04a0c2a161a03b26d83259c1448c220a5cd43ee766
3. Идёт на
http://localhost:8080/job/project/buildWithParameters?token=build
с POST-формой (в ней записан номер версии в Mercurial) и вышеуказанным заголовком Jenkins-Crumb.
В таким виде работало почти год. И вот на этом третьем шаге, после обновления 2.176.1 → 2.190.2, и начало валиться с ошибкой «No valid crumb was included in the request».
Сервер Jetty, авторизация BASIC, никакого HTTPS нет.