Traefik proxied setups block page names with "?", "#" and ";" (FIX)

Just completely randomly came across this in my Pangolin based deployment, which uses Traefik under the hood. Apparently since 3.6.4 Traefik will block any URL containing some suspicious characters, including “?”. Generally this is probably fine, unless you happen to use SilverBullet and have page names with a question mark in the name…

Easy to disable, though, in my traefik_config.yml in the endPoints section under websecure simply re-enable it. Here it is in my config:

entryPoints:
  # ...
  websecure:
    # ...
    http:
      # Re-enable ? support:
      encodedCharacters:
        allowEncodedQuestionMark: true
        allowEncodedHash: true
        allowEncodedSemicolon: true

Documenting it here if somebody hits this (obscure) issue at some point.

3 Likes

Update: the impact of this is actually a bit bigger than I first thought. It means that if you have even a single page with a special character (?, # or ;) in the name, sync will attempt over and over again to fetch this file (every 20s) and fail and therefore never mark a full sync cycle as successful and therefore never switch to the local handling of file serving. This means all operations involving the file system will be significantly slower (requiring a request back to the server).

So yeah, traefik users: watch for 400 bad request errors.

1 Like