Linkding - HTML snapshots all fail
-
Linkding is not generating any new HTML snapshots of existing or newly added links, anymore
I don’t see anything specific in the logs, here’s an example of adding a link to an article in zeit.de:
Jun 03 06:20:10 [pid: 15|app: 0|req: 2442/5801] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:20:10 2025] GET / => generated 0 bytes in 18 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 0) Jun 03 06:20:20 [pid: 17|app: 0|req: 3286/5802] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:20:20 2025] GET / => generated 0 bytes in 19 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 1) Jun 03 06:20:30 [pid: 17|app: 0|req: 3287/5803] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:20:30 2025] GET / => generated 0 bytes in 19 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 0) Jun 03 06:20:40 [pid: 15|app: 0|req: 2443/5806] 93.159.105.156 () {58 vars in 1384 bytes} [Tue Jun 3 04:20:40 2025] GET /api/bookmarks/check?url=https%3A%2F%2Fwww.zeit.de%2Fzeit-magazin%2F2025%2F23%2Fverena-kast-aelter-werden-psychologie-glueck%2Fkomplettansicht => generated 0 bytes in 24 msecs (HTTP/1.1 301) 6 headers in 347 bytes (1 switches on core 1) Jun 03 06:20:40 [pid: 17|app: 0|req: 3288/5804] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:20:40 2025] GET / => generated 0 bytes in 21 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 1) Jun 03 06:20:40 [pid: 17|app: 0|req: 3289/5805] 93.159.105.156 () {56 vars in 1254 bytes} [Tue Jun 3 04:20:40 2025] GET /bookmarks/new?url=https://www.zeit.de/zeit-magazin/2025/23/verena-kast-aelter-werden-psychologie-glueck/komplettansicht&auto_close => generated 17076 bytes in 35 msecs (HTTP/1.1 200) 9 headers in 398 bytes (1 switches on core 0) Jun 03 06:20:40 [pid: 17|app: 0|req: 3290/5807] 93.159.105.156 () {58 vars in 1132 bytes} [Tue Jun 3 04:20:40 2025] GET /manifest.json => generated 1390 bytes in 25 msecs (HTTP/1.1 200) 8 headers in 253 bytes (1 switches on core 1) Jun 03 06:20:41 [pid: 17|app: 0|req: 3291/5808] 93.159.105.156 () {58 vars in 1386 bytes} [Tue Jun 3 04:20:40 2025] GET /api/bookmarks/check/?url=https%3A%2F%2Fwww.zeit.de%2Fzeit-magazin%2F2025%2F23%2Fverena-kast-aelter-werden-psychologie-glueck%2Fkomplettansicht => generated 555 bytes in 635 msecs (HTTP/1.1 200) 9 headers in 287 bytes (1 switches on core 0) Jun 03 06:20:44 [pid: 17|app: 0|req: 3292/5809] 93.159.105.156 () {58 vars in 1161 bytes} [Tue Jun 3 04:20:44 2025] GET /api/tags/?limit=5000&offset=0 => generated 8071 bytes in 30 msecs (HTTP/1.1 200) 9 headers in 294 bytes (1 switches on core 1) Jun 03 06:20:50 [pid: 17|app: 0|req: 3293/5810] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:20:50 2025] GET / => generated 0 bytes in 14 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 0) Jun 03 06:20:51 [pid: 17|app: 0|req: 3294/5811] 93.159.105.156 () {66 vars in 1372 bytes} [Tue Jun 3 04:20:51 2025] POST /bookmarks/new => generated 0 bytes in 65 msecs (HTTP/1.1 302) 9 headers in 289 bytes (1 switches on core 1) Jun 03 06:20:51 [pid: 17|app: 0|req: 3295/5812] 93.159.105.156 () {62 vars in 1291 bytes} [Tue Jun 3 04:20:51 2025] GET /bookmarks/close => generated 7934 bytes in 24 msecs (HTTP/1.1 200) 9 headers in 397 bytes (1 switches on core 0) Jun 03 06:21:00 [pid: 15|app: 0|req: 2444/5813] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:21:00 2025] GET / => generated 0 bytes in 22 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 0) Jun 03 06:21:10 [pid: 17|app: 0|req: 3296/5814] 172.18.0.1 () {30 vars in 374 bytes} [Tue Jun 3 04:21:10 2025] GET / => generated 0 bytes in 26 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 1) Jun 03 06:21:20 [pid: 17|app: 0|req: 3297/5815] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:21:20 2025] GET / => generated 0 bytes in 17 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 0) Jun 03 06:21:30 [pid: 17|app: 0|req: 3298/5816] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:21:30 2025] GET / => generated 0 bytes in 18 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 1) Jun 03 06:21:40 [pid: 17|app: 0|req: 3299/5817] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:21:40 2025] GET / => generated 0 bytes in 17 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 0) Jun 03 06:21:50 [pid: 17|app: 0|req: 3300/5818] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:21:50 2025] GET / => generated 0 bytes in 11 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 1) Jun 03 06:21:50 2025-06-03 04:21:50,033 INFO reaped unknown pid 56 (exit status 1) -
Linkding is not generating any new HTML snapshots of existing or newly added links, anymore
I don’t see anything specific in the logs, here’s an example of adding a link to an article in zeit.de:
Jun 03 06:20:10 [pid: 15|app: 0|req: 2442/5801] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:20:10 2025] GET / => generated 0 bytes in 18 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 0) Jun 03 06:20:20 [pid: 17|app: 0|req: 3286/5802] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:20:20 2025] GET / => generated 0 bytes in 19 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 1) Jun 03 06:20:30 [pid: 17|app: 0|req: 3287/5803] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:20:30 2025] GET / => generated 0 bytes in 19 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 0) Jun 03 06:20:40 [pid: 15|app: 0|req: 2443/5806] 93.159.105.156 () {58 vars in 1384 bytes} [Tue Jun 3 04:20:40 2025] GET /api/bookmarks/check?url=https%3A%2F%2Fwww.zeit.de%2Fzeit-magazin%2F2025%2F23%2Fverena-kast-aelter-werden-psychologie-glueck%2Fkomplettansicht => generated 0 bytes in 24 msecs (HTTP/1.1 301) 6 headers in 347 bytes (1 switches on core 1) Jun 03 06:20:40 [pid: 17|app: 0|req: 3288/5804] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:20:40 2025] GET / => generated 0 bytes in 21 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 1) Jun 03 06:20:40 [pid: 17|app: 0|req: 3289/5805] 93.159.105.156 () {56 vars in 1254 bytes} [Tue Jun 3 04:20:40 2025] GET /bookmarks/new?url=https://www.zeit.de/zeit-magazin/2025/23/verena-kast-aelter-werden-psychologie-glueck/komplettansicht&auto_close => generated 17076 bytes in 35 msecs (HTTP/1.1 200) 9 headers in 398 bytes (1 switches on core 0) Jun 03 06:20:40 [pid: 17|app: 0|req: 3290/5807] 93.159.105.156 () {58 vars in 1132 bytes} [Tue Jun 3 04:20:40 2025] GET /manifest.json => generated 1390 bytes in 25 msecs (HTTP/1.1 200) 8 headers in 253 bytes (1 switches on core 1) Jun 03 06:20:41 [pid: 17|app: 0|req: 3291/5808] 93.159.105.156 () {58 vars in 1386 bytes} [Tue Jun 3 04:20:40 2025] GET /api/bookmarks/check/?url=https%3A%2F%2Fwww.zeit.de%2Fzeit-magazin%2F2025%2F23%2Fverena-kast-aelter-werden-psychologie-glueck%2Fkomplettansicht => generated 555 bytes in 635 msecs (HTTP/1.1 200) 9 headers in 287 bytes (1 switches on core 0) Jun 03 06:20:44 [pid: 17|app: 0|req: 3292/5809] 93.159.105.156 () {58 vars in 1161 bytes} [Tue Jun 3 04:20:44 2025] GET /api/tags/?limit=5000&offset=0 => generated 8071 bytes in 30 msecs (HTTP/1.1 200) 9 headers in 294 bytes (1 switches on core 1) Jun 03 06:20:50 [pid: 17|app: 0|req: 3293/5810] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:20:50 2025] GET / => generated 0 bytes in 14 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 0) Jun 03 06:20:51 [pid: 17|app: 0|req: 3294/5811] 93.159.105.156 () {66 vars in 1372 bytes} [Tue Jun 3 04:20:51 2025] POST /bookmarks/new => generated 0 bytes in 65 msecs (HTTP/1.1 302) 9 headers in 289 bytes (1 switches on core 1) Jun 03 06:20:51 [pid: 17|app: 0|req: 3295/5812] 93.159.105.156 () {62 vars in 1291 bytes} [Tue Jun 3 04:20:51 2025] GET /bookmarks/close => generated 7934 bytes in 24 msecs (HTTP/1.1 200) 9 headers in 397 bytes (1 switches on core 0) Jun 03 06:21:00 [pid: 15|app: 0|req: 2444/5813] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:21:00 2025] GET / => generated 0 bytes in 22 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 0) Jun 03 06:21:10 [pid: 17|app: 0|req: 3296/5814] 172.18.0.1 () {30 vars in 374 bytes} [Tue Jun 3 04:21:10 2025] GET / => generated 0 bytes in 26 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 1) Jun 03 06:21:20 [pid: 17|app: 0|req: 3297/5815] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:21:20 2025] GET / => generated 0 bytes in 17 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 0) Jun 03 06:21:30 [pid: 17|app: 0|req: 3298/5816] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:21:30 2025] GET / => generated 0 bytes in 18 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 1) Jun 03 06:21:40 [pid: 17|app: 0|req: 3299/5817] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:21:40 2025] GET / => generated 0 bytes in 17 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 0) Jun 03 06:21:50 [pid: 17|app: 0|req: 3300/5818] 172.18.0.1 () {30 vars in 375 bytes} [Tue Jun 3 04:21:50 2025] GET / => generated 0 bytes in 11 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 1) Jun 03 06:21:50 2025-06-03 04:21:50,033 INFO reaped unknown pid 56 (exit status 1)Hello @necrevistonnezr
@necrevistonnezr said in Linkding - HTML snapshots all fail:
anymore
means it was working before?
What has changed since then? Did the app update or anything? -
I've reproduced this issue with the given URL https://www.zeit.de/zeit-magazin/2025/23/verena-kast-aelter-werden-psychologie-glueck/komplettansicht
When pressing
Create HTML snapshot.Jun 03 11:27:21 [pid: 21|app: 0|req: 159/285] 2a00:20:6353:7887:65ef:3314:2fa6:31ae () {74 vars in 1592 bytes} [Tue Jun 3 09:27:21 2025] POST /bookmarks/action?details=1 => generated 9022 bytes in 26 msecs (HTTP/1.1 200) 9 headers in 399 bytes (1 switches on core 1) Jun 03 11:27:22 [pid: 19|app: 0|req: 91/286] 172.18.0.1 () {28 vars in 367 bytes} [Tue Jun 3 09:27:22 2025] GET / => generated 0 bytes in 13 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 1) Jun 03 11:27:30 [pid: 21|app: 0|req: 160/287] 172.18.0.1 () {28 vars in 367 bytes} [Tue Jun 3 09:27:30 2025] GET / => generated 0 bytes in 10 msecs (HTTP/1.1 302) 9 headers in 280 bytes (1 switches on core 0) Jun 03 11:27:35 2025-06-03 09:27:35,546 INFO reaped unknown pid 68 (exit status 1)Testing with a different URL https://www.heise.de/news/Microsoft-loest-Dual-Boot-Probleme-von-Windows-und-Linux-10386354.html
Also ended in:
Jun 03 11:32:35 2025-06-03 09:32:35,198 INFO reaped unknown pid 82 (exit status 1)Just for testing I also installed a Cloudron LAMP App and tried to snapshot that one.
Even that failed.Have to start looking into the process what is happening.
-
In the file
/run/linkding/background_tasks.logI found the following log:INFO 2025-06-03 09:53:30,980 tasks: Create HTML snapshot for bookmark. url=https://lamp.cloudronapp.php74.cloudron.dev/ Process exited with code null file:///usr/local/node-20.11.1/lib/node_modules/single-file-cli/lib/deno-polyfill.js:86 reject(new Error(`Process exited with code ${code}`)); ^ Error: Process exited with code null at ChildProcess.<anonymous> (file:///usr/local/node-20.11.1/lib/node_modules/single-file-cli/lib/deno-polyfill.js:86:14) at ChildProcess.emit (node:events:518:28) at ChildProcess._handle.onexit (node:internal/child_process:294:12) Node.js v20.11.1 ERROR 2025-06-03 09:53:31,999 tasks: Failed to HTML snapshot for bookmark. url=https://lamp.cloudronapp.php74.cloudron.dev/ Traceback (most recent call last): File "/app/code/bookmarks/services/tasks.py", line 304, in _create_html_snapshot_task assets.create_snapshot(asset) File "/app/code/bookmarks/services/assets.py", line 60, in create_snapshot raise error File "/app/code/bookmarks/services/assets.py", line 37, in create_snapshot singlefile.create_snapshot(asset.bookmark.url, temp_filepath) File "/app/code/bookmarks/services/singlefile.py", line 32, in create_snapshot raise SingleFileError("Failed to create snapshot") bookmarks.services.singlefile.SingleFileError: Failed to create snapshot INFO 2025-06-03 09:53:32,000 api: bookmarks.services.tasks._schedule_html_snapshots_task: f66a211f-b174-4345-8329-31404630c9b2 executed in 1.023s INFO 2025-06-03 09:54:27,246 consumer: Enqueueing periodic task bookmarks.services.tasks._schedule_html_snapshots_task: 26ff4c55-5203-4e57-a845-9cd3de16dbac. INFO 2025-06-03 09:54:30,264 consumer: Received SIGTERM INFO 2025-06-03 09:54:30,363 consumer: Shutting down INFO 2025-06-03 09:54:30,363 consumer: Consumer exiting. -
Was able to get some more details:
File "/app/code/bookmarks/services/singlefile.py", line 32, in create_snapshot raise SingleFileError(f"FAILED TO CREATE SNAPSHOT! - args: {args}") bookmarks.services.singlefile.SingleFileError: FAILED TO CREATE SNAPSHOT! - args: ['single-file', '--browser-arg=--user-data-dir=/run/linkding/chromium-profile', 'https://lamp.cloudronapp.php74.cloudron.dev/', '/app/code/data/assets/snapshot_2025-06-03_102124_https___lamp.cloudronapp.php74.cloudron.dev_.tmp']What is suspicious is that the tmp files is written to:
/app/code/data/assets/snapshot_2025-06-03_102124_https___lamp.cloudronapp.php74.cloudron.dev_.tmpThis should then be reflected in the app with either https://docs.cloudron.io/packaging/manifest/#runtimedirs or a workaround with symlinks.
But since I am currently debugging the app in recovery mode, the app is able to write
/app/codeand still fails.
Might just be something to keep in mind. -
@james Thanks for investigating! I understand correctly: It's the current package that tries to write a temp file to a write-protected folder?
-
N necrevistonnezr marked this topic as a question on
-
@james Thanks for investigating! I understand correctly: It's the current package that tries to write a temp file to a write-protected folder?
@necrevistonnezr No sadly not.
Noticed later that this is already symlinked correctly:s -lah /app/code/data/ total 40K drwxr-xr-x 1 cloudron cloudron 4.0K May 20 09:43 . drwxr-xr-x 1 cloudron cloudron 4.0K Jun 3 11:20 .. lrwxrwxrwx 1 cloudron cloudron 21 May 20 09:42 assets -> /app/data/data/assets lrwxrwxrwx 1 cloudron cloudron 18 May 20 09:42 favicons -> /app/data/favicons lrwxrwxrwx 1 cloudron cloudron 23 May 20 09:42 previews -> /app/data/data/previews lrwxrwxrwx 1 cloudron cloudron 23 May 20 09:42 secretkey.txt -> /app/data/secretkey.txt lrwxrwxrwx 1 cloudron cloudron 28 May 20 09:43 tasks.sqlite3 -> /app/data/data/tasks.sqlite3 -rw-r--r-- 1 cloudron cloudron 28K May 20 09:43 tasks.sqlite3.orig -
J james marked this topic as a regular topic on
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login