Impossible de compiler mes projets Overleaf/Cannot compile any project on Overleaf

What app is this about, and its version: Overleaf, 2025.10.31~ynh1
What YunoHost version are you running: 12.1.34
What type of hardware are you using: Old laptop or computer

Describe your issue

(English below)

Bonjour,

Depuis plus d’une semaine, mon instance d’Overleaf a cessé de compiler tous mes projets : l’interface Web affiche simplement “Erreur du serveur. Désolé, quelque chose ne fonctionne pas et votre projet ne peut pas être compilé. Veuillez réessayer dans quelques instants.” à chaque tentative de compilation.

Dans la console de mon navigateur, je constate qu’une requête POST vers “mon-serveur/id_projet/compile?” échoue systématiquement avec le code HTTP 500. Dans les journaux du service “overleaf-web”, l’erreur suivante apparaît : “failed to make request to CLSI”. Pourtant, dans les journaux du service “overleaf-clsi”, je ne vois aucun message d’erreur.

Le problème ne fait pas suite à une mise à jour. J’ai déjà essayé de désinstaller et réinstaller Overleaf, en supprimant les données utilisateur, mais le problème persiste. Il semblerait donc que le problème provient de mon système et non de l’application ou de ses données.

Je vous remercie d’avance pour votre aide.

ENGLISH :

Hello,

Since over a week, my Overleaf instance fails to compile any of my projects : the Web interface only shows the message “Server error. Sorry, something doesn’t work and your project failed to compile. Please try again later.” every time I try to compile.

In my browser’s console, I identified that a POST request to “my-server/project_id/compile?” fails every time with the HTTP code 500. In the logs of the service “overleaf-web” I can see this error : “failed to make request to CLSI”. However, nothing relevant appears on the logs of “overleaf-clsi”.

The problem didn’t happen after an update. I already tried to uninstall then reinstall Overleaf, while deleting user data, but the problem persists. It looks like the problem comes from my system and not from the apps or user data.

Thank you in advance for your help!

Share relevant logs or error messages

/

Salut @antux18
Qu’as-tu exactement dans les logs de “overleaf-clsi" et de “overleaf-web” ?

Bonjour @otm33,

Dans les logs de “overleaf-web”, j’ai :

{"name":"web","hostname":"<censored>","pid":338753,"level":50,"err":{"message":"failed to make request to CLSI","name":"OError","stack":"OError: failed to make request to CLSI\n    at _postToClsi (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/ClsiManager.mjs:627:13)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n    at async _sendBuiltRequest (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/ClsiManager.mjs:245:38)\n    at async sendRequestOnce (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/ClsiManager.mjs:149:10)\n    at async Object.sendRequest (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/ClsiManager.mjs:115:16)\n    at async compile (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/CompileManager.mjs:87:7)\n    at async Object.compile (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/CompileManager.mjs:19:14)\n    at async compile (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/CompileController.mjs:249:9)\ncaused by:\n    FetchError: request to http://127.0.0.1:3013/project/68cbbc883c1c3bba55dfdb93/user/6895db6695855790b24bb53e/compile?compileBackendClass=n2d&compileGroup=standard failed, reason: socket hang up\n        at ClientRequest.<anonymous> (/var/www/overleaf/live/node_modules/node-fetch/lib/index.js:1501:11)\n        at ClientRequest.emit (node:events:518:28)\n        at emitErrorEvent (node:_http_client:104:11)\n        at Socket.socketOnEnd (node:_http_client:542:5)\n        at Socket.emit (node:events:530:35)\n        at endReadableNT (node:internal/streams/readable:1698:12)\n        at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n    TaggedError: request to http://127.0.0.1:3013/project/68cbbc883c1c3bba55dfdb93/user/6895db6695855790b24bb53e/compile?compileBackendClass=n2d&compileGroup=standard failed, reason: socket hang up\n        at performRequest (/var/www/overleaf/live/libraries/fetch-utils/index.js:242:18)\n        at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n        at async fetchStringWithResponse (/var/www/overleaf/live/libraries/fetch-utils/index.js:146:20)\n        at async _makeRequest (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/ClsiManager.mjs:358:28)\n        at async _postToClsi (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/ClsiManager.mjs:594:36)\n        at async _sendBuiltRequest (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/ClsiManager.mjs:245:38)\n        at async sendRequestOnce (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/ClsiManager.mjs:149:10)\n        at async Object.sendRequest (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/ClsiManager.mjs:115:16)\n        at async compile (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/CompileManager.mjs:87:7)\n        at async Object.compile (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/CompileManager.mjs:19:14)\n    TaggedError: error making request to CLSI\n        at _makeRequest (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/ClsiManager.mjs:360:18)\n        at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n        at async _postToClsi (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/ClsiManager.mjs:594:36)\n        at async _sendBuiltRequest (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/ClsiManager.mjs:245:38)\n        at async sendRequestOnce (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/ClsiManager.mjs:149:10)\n        at async Object.sendRequest (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/ClsiManager.mjs:115:16)\n        at async compile (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/CompileManager.mjs:87:7)\n        at async Object.compile (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/CompileManager.mjs:19:14)\n        at async compile (file:///var/www/overleaf/live/services/web/app/src/Features/Compile/CompileController.mjs:249:9)","info":{"url":"http://127.0.0.1:3013/project/68cbbc883c1c3bba55dfdb93/user/6895db6695855790b24bb53e/compile?compileBackendClass=n2d&compileGroup=standard","method":"POST","projectId":"68cbbc883c1c3bba55dfdb93","userId":"6895db6695855790b24bb53e","compileOptions":{"buildId":"19a5dde708b-23bbe81f7b03b4da","editorId":"a191914e-cb71-4286-a566-f25bf17eb72d","compiler":"pdflatex","timeout":180,"draft":false,"stopOnFirstError":false,"check":"silent","syncType":"full","syncState":"2facb6ac2e3ed99c060132d5d45dfdc506d57671","compileGroup":"standard","compileFromClsiCache":false,"populateClsiCache":false,"enablePdfCaching":false,"metricsMethod":"standard"},"rootResourcePath":"main.tex"}},"responseTimeMs":530,"req":{"method":"POST","url":"/project/68cbbc883c1c3bba55dfdb93/compile?","remoteAddress":"<censored>","headers":{"referer":"https://<censored>/project/68cbbc883c1c3bba55dfdb93","user-agent":"Mozilla/5.0 (X11; Linux x86_64; rv:144.0) Gecko/20100101 Firefox/144.0","content-length":"159"}},"res":{"statusCode":500,"headers":{"content-length":"679"}},"msg":"POST /project/68cbbc883c1c3bba55dfdb93/compile?","time":"2025-11-07T10:30:50.771Z","v":0}

Et dans ceux de “overleaf-clsi” :

Initializing metrics
Set UV_THREADPOOL_SIZE=16
Using default settings from /var/www/overleaf/live/services/clsi/config/settings.defaults.js
Using settings from /var/www/overleaf/settings.js
{"name":"clsi","hostname":"<censored>","pid":585843,"level":30,"target":"2025-11-09T07:18:20.218Z","msg":"Lifespan limited","time":"2025-11-07T10:30:56.281Z","v":0}

Peux-tu arrêter overleaf-clsi et le redémarrer à la main pour voir ce que cela donne ? Pour trouver cette commande tu fais systemctl status overleaf-clsi et tu copies la commande qui suit ExecStart=
Quelque chose du genre `/opt/node_n/n/versions/node/ …

Voici le retour :

$ /opt/node_n/n/versions/node/22.18.0/bin/node /var/www/overleaf/live/services/clsi/app.js
node:internal/modules/cjs/loader:1368
  throw err;
  ^

Error: Cannot find module '/var/www/overleaf/live/services/clsi/app.js'
    at Function._resolveFilename (node:internal/modules/cjs/loader:1365:15)
    at defaultResolveImpl (node:internal/modules/cjs/loader:1021:19)
    at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1026:22)
    at Function._load (node:internal/modules/cjs/loader:1175:37)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
    at node:internal/main/run_main_module:36:49 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

Node.js v22.18.0

Cela ne semble pas fonctionner si je le lance à la main.

EDIT : J’aurais dû le lancer avec sudo. Apparemment, lancer la commande à la main règle mon problème de compilation !

Ok :+1:. Il y a donc un paramètre trop restrictif dans le fichier de service.
Reste à trouver lequel…

Voici le fichier de service (/etc/systemd/system/overleaf-clsi.service) :

[Unit]
Description=overleaf clsi
After=network.target

[Service]
Type=simple
User=overleaf
Group=overleaf
WorkingDirectory=/var/www/overleaf/
EnvironmentFile=/var/www/overleaf/variables.env
Environment="CLSI_HOST=127.0.0.1"
Environment="MONGO_CONNECTION_STRING=mongodb://127.0.0.1:27017/overleaf"
ExecStart=/opt/node_n/n/versions/node/22.18.0/bin/node /var/www/overleaf/live/services/clsi/app.js
StandardOutput=append:/var/log/overleaf/clsi.log
StandardError=inherit
Restart=on-failure
RestartSec=5s

# Sandboxing options to harden security
# Details for these options: https://www.freedesktop.org/software/systemd/man/systemd.exec.html
NoNewPrivileges=yes
PrivateTmp=yes
PrivateDevices=yes
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK
RestrictNamespaces=yes
RestrictRealtime=yes
DevicePolicy=closed
ProtectClock=yes
ProtectHostname=yes
ProtectProc=invisible
ProtectSystem=full
ProtectControlGroups=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
LockPersonality=yes
SystemCallArchitectures=native
SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap @cpu-emulation @privileged

# Denying access to capabilities that should not be relevant for webapps
# Doc: https://man7.org/linux/man-pages/man7/capabilities.7.html
CapabilityBoundingSet=~CAP_RAWIO CAP_MKNOD
CapabilityBoundingSet=~CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE
CapabilityBoundingSet=~CAP_SYS_BOOT CAP_SYS_TIME CAP_SYS_MODULE CAP_SYS_PACCT
CapabilityBoundingSet=~CAP_LEASE CAP_LINUX_IMMUTABLE CAP_IPC_LOCK
CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_WAKE_ALARM
CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG
CapabilityBoundingSet=~CAP_MAC_ADMIN CAP_MAC_OVERRIDE
CapabilityBoundingSet=~CAP_NET_ADMIN CAP_NET_BROADCAST CAP_NET_RAW
CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_SYSLOG

[Install]
WantedBy=multi-user.target

Y a-t-il quelque chose de suspect ?

Non, rien de suspect mais il doit y avoir un paramètre de la partie “Sandboxing options to harden security” qui est trop restrictif. Sans doute en lien avec le changement de version de nodejs d’overleaf qui est passée à 22 il y a une quinzaine de jours. Est-ce que chronologiquement, c’est cohérent avec tes pbs de compilation ?

Ça a l’air cohérent oui. Quels paramètres devrais-je changer ?

Tu peux enlever @privileged du groupe pour voir.

Ça a marché, merci beaucoup !

Rien à voir, mais depuis que j’ai réinstallé Overleaf, la racine de l’URL de l’application (c’est-à-dire https://latex.mon-serveur/) affiche la page par défaut de Nginx au lieu de rediriger vers la page de connexion ou la liste des projets si je suis déjà connecté.

Est-ce qu’il faudrait que j’ouvre un nouveau fil pour régler cet autre problème ?

Ça retire une sécurité donc disons que c’est un pis aller pour faire fonctionner le service de compilation de façon ponctuelle. Il faudra signaler le problème pour voir si une autre solution peut être appliquée.

Pour l’url, à quelle adresse te connectes-tu alors depuis la réinstallation?

Ah mince, il faudrait que j’ouvre un ticket sur le dépôt du paquet YNH ?

Pour contourner le problème, je dois renseigner manuellement le chemin vers la page des projets : https://latex.mon-serveur/project

Il faudrait voir si d’autres personnes ont le même souci mais si tu l’as rencontré avec une installation nouvelle, tu ne vas pas être le seul.

Pour l’adresse, regarde la page de l’application dans la webadmin. Tu peux tenter un changement d’url pour commencer et voir si cela règle le problème.

J’ai tenté un changement d’URL dans l’interface d’admin YNH, ça n’a pas réglé le problème.

Je viens d’installer overleaf et le même problème se pose pour la compilation.
En revenant à une version 20 de nodejs dans le fichier de service, la fonction est rétablie. Cette solution me semble pour le moment préférable au retrait du paramètre de sécurité @ privileged
Pour l’url, je ne vois pas… Est-ce que dans /nginx/conf.d/<domain.tld.d>/overleaf.conf tu remarques des choses qui s’éloignent de la configuration par défaut ?

Je n’ai plus Node 20, donc j’ai utilisé la version 18, qui est toujours installée chez moi, et ça fonctionne aussi. J’ai donc rétabli le paramètre privileged.

Le fichier /etc/nginx/conf.d/<domain.tld.d>/overleaf.conf semble identique à la configuration par défaut (modulo les variables de type PORT qui ont été remplacées par leur vraie valeur chez moi).

Le nom de domaine est correct dans /etc/nginx/conf.d/<domain.tld.conf> ? Franchement, à ta place, je serais tenté de réinstaller une nouvelle fois.

Le paramètre bloquant du groupe @ privileged a l’air d’être le syscall fchown ; cela fonctionne avec node 22 mais la ligne à entrer dans le SysCallFilter devient longue comme le bras. Il doit y avoir un autre moyen…

Oui, la ligne server_name dans la config a la bonne valeur. Je vais tenter une réinstall et je te dis.

J’ai tenté une réinstallation, ça n’a pas réglé le problème.