LibreSign / LibreSign/libresign

ci(behat): flake cURL error 52 Empty reply from server on request-signature

Open
#8,422 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
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" in tests/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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.