LibreSign / LibreSign/libresign
ci(behat): flake cURL error 52 Empty reply from server on request-signature
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 818
- Forks
- 146
- Avg merge
- 11h 31m
- Merged PRs (30d)
- 326
Description
Describe the bug
ehat CI fails intermittently with cURL error 52: Empty reply from server (GuzzleHttp\Exception\ConnectException) on POST /ocs/v2.php/apps/libresign/api/v1/request-signature, usually in file/list.feature
To reproduce
- Open a PR that triggers Behat workflows (MySQL most often; also seen on SQLite).
- Wait for Behat MySQL
(MySQL 8.1 / current PHP / Nextcloud master). - Sometimes one scenario fails while the rest pass.
- Check the failed step: And sending
"post" to ocs "/apps/libresign/api/v1/request-signature"intests/integration/features/file/list.feature(scenario “Return a list with 3 pages”, around the 3rd/4th POST). - See:
cURL error 52: Empty reply from server (GuzzleHttp\Exception\ConnectException). - Re-run the same job (or push an empty commit) → usually green.
Expected behavior
Behat MySQL/SQLite should complete deterministically without connection flakes. A closed connection from the PHP built-in server should not fail an otherwise green suite, or at least should be retried / diagnosed clearly.
Screenshots
No response
Operational System
GitHub Actions
Browser Type and Version
N/A
Libresign Version
main / PR
Nextcloud Server Version
No response
Logs from Nextcloud Server
N/A
Logs from Developers tools
- Beheat
cURL error 52: Empty reply from server
(see https://curl.se/libcurl/c/libcurl-errors.html)
for http://localhost:<port>/ocs/v2.php/apps/libresign/api/v1/request-signature
(GuzzleHttp\Exception\ConnectException)
Additional context
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with tests/integration/features/file/list.feature, especially the “Return a list with 3 pages” scenario and its POST to /apps/libresign/api/v1/request-signature. Reproduce the failure in the Behat MySQL and SQLite workflows, then inspect the PHP built-in server and request handling around cURL error 52. Done means the workflows complete deterministically, or connection failures are retried or diagnosed clearly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, php
- Domain
- api, ci-cd, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100