Skip to content

Troubleshooting

Login fails with 403 CSRF verfication failed

This can be the case when using a reverse proxy that rewrites the Host header, such as Nginx. Since linkding version 1.15, the application includes a CSRF check that verifies that the Origin request header matches the Host header. If the Host header is modified by the reverse proxy then this check fails.

To fix this, check the reverse proxy setup documentation on how to configure header forwarding for your proxy server, or alternatively configure the LD_CSRF_TRUSTED_ORIGINS option to the URL from which you are accessing your linkding instance.

Automatically detected title and description are incorrect

linkding automatically fetches the title and description of the web page from the metadata in the HTML <head>. This happens on the server, which can return different results than what you see in your browser, for example if a website uses JavaScript to dynamically change the title or description, or if a website requires login.

When using the linkding browser extension, you can enable the Use browser metadata option to use the title and description that your browser sees. This will override the server-fetched metadata. Note that for some websites this can give worse results, as not all websites correctly update the metadata in <head> while browsing the website (which is why fetching a fresh page on the server is still the default).

The bookmarklet currently does not have such an option.

Archiving fails for certain websites

When using the server-based archiving feature (available in the latest-plus Docker image), you may encounter issues with certain websites where snapshots fail to capture the web page contents correctly. Common issues include the website showing a bot detection page, a login screen, or some banner that blocks the content. In rare cases taking a snapshot may also time out.

There are some options to mitigate these issues:

  • To capture web page contents exactly as they appear in your browser, use the Singlefile browser extension or the linkding browser extension with Singlefile integration.
  • You can pass custom options to the SingleFile CLI, which linkding uses to capture web pages on the server, using the LD_SINGLEFILE_OPTIONS environment variable. For example, changing the user agent might help with some bot detection systems.
  • If snapshots are timing out, you can increase the timeout by setting the LD_SINGLEFILE_TIMEOUT_SEC environment variable to a higher value.

Check the archiving documentation for more information on how to archive web pages with linkding.

URL validation fails for seemingly valid URLs

When adding a bookmark, you may encounter URL validation errors even for URLs that seem valid and work in your browser. This is because linkding uses Django’s URL validator, which has some limitations in what it considers a valid URL.

Common cases that may fail validation:

  • Domains that contain an underscore
  • URLs without a top-level domain
  • URLs with a non-standard protocol (e.g. chrome://)

If you need to store URLs that don’t pass the default validation, you can disable URL validation completely by setting the LD_DISABLE_URL_VALIDATION option to True. See the options documentation for how to configure this setting.

Further info: